一个简单的ajax实例

 一个简单的异步请求的例子,很简单自己看吧:

index.html:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script type='text/javascript' src='quickstart.js'></script>
<title>Ajax with PHP: Quickstart</title>
</head>
<body>
 Server wants to know your name:<input type='text' id='myName' value='' οnchange='process()'>
 <div id='message'></div>
 Server wants to know your fullName<input type='text' id='myFullName' value=''>
</body>
</html>

 

quickstart.js:

//初始化xmlHttpRequest对象
var xmlHttpRequest = createXmlHttpRequestObject();

function createXmlHttpRequestObject()
{
 //声明对象用来存储将要试用的xmlHttpRequest对象
 var xmlHttp;
 //如果是在ie下
 if(window.ActiveXObject)
 {
  try
  {
   xmlHttp = new ActiveXObject('Microsoft.XMLHTTP');
  }
  catch (e)
  {
   xmlHttp = false;
  }
 }
 //如果是Mozilla或者其他浏览器
 else
 {
  try
  {
   xmlHttp = new XMLHttpRequest();
  }
  catch (e)
  {
   xmlHttp = false;
  }
 }
 //返回xmlHttpRequest对象或者错误信息
 if(!xmlHttp)
 {
  alert('Error creating the xmlHttpRequest object.');
 }
 else
 {
  return xmlHttp;
 }
}


//使用xmlHttpRequest发送异步请求
function process()
{
 //在xmlHttpRequest对象不忙时进行处理
 if(xmlHttpRequest.readyState == 4 || xmlHttpRequest.readyState == 0)
 {
  //获得表单中输入的用户名字
  name = encodeURIComponent(document.getElementById('myName').value);
  //在服务器端执行quickstart.php
  xmlHttpRequest.open('GET','quickstart.php?name=' + name,true);
  //定义处理服务器端返回相应的函数
  xmlHttpRequest.onreadystatechange = handleServerResponse;
  //向服务器发送请求
  xmlHttpRequest.send(null);
 }
 else
 {
  //如果服务器繁忙,1秒钟后重试
  setTimeout('process()',1000);
 }
}


//当收到服务器端的相应的时候自动执行
function handleServerResponse()
{
 //在处理结束时进入下一步
 if(xmlHttpRequest.readyState == 4)
 {
  //状态为200表示处理成功结束
  if(xmlHttpRequest.status == 200)
  {
   //获得服务器端发出的xml请求
   xmlResponse = xmlHttpRequest.responseXML;
   //获得XML中的文档对象
   xmlDocumentElement = xmlResponse.documentElement;
   //获得第一个文档对象的文本信息,第一个孩子节点
   helloMessage = xmlDocumentElement.firstChild.data;
   //使用从服务器端发送的消息更新客户端显示的内容
   document.getElementById('message').innerHTML = '<i>' + helloMessage + '</i>';
  
   //1秒钟后重新开始
   //setTimeout('process()',1000);
  }

  //如果HTTP的状态不是200表示出错
  else
  {
   alert('There was a problem accessing the server: ' + xmlHttpRequest.statusText);
  }
 }
}

 

quickstart.php:

<?php

 //创建一个XML格式的输出
 header('Content-Type: text/xml');
 //创建XML头
 echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
 //创建<response>元素
 echo '<response>';

 //获取姓名
 $name = $_GET['name'];
 //根据从客户端获取的用户名创建输出
 $userNames = array('JASHON','BOM','MICROSOFT','AMD','SUN','INTEL');
 if(in_array(strtoupper($name),$userNames))

  echo 'Hello,master '.htmlentities($name).'!';
 else if(trim($name == ''))
  echo 'Stranger,please tell me your name!';
 else
  echo htmlentities($name).', I don//'t know you!';
 //关闭response标签
 echo '</response>';

?>

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值