ajax+php的简单实现

如果你以前还没接触过ajax的话,建议先看看有关ajax的书籍。我提供个地址:http://java2000.net/f116

众所周知,ajax概括起来就是异步传输,而在此过程中就离不开XMLHttpRequest对象的使用。

例子:假设我们要做一个注册用户验证该用户名是否存在的功能。

表单代码:在账户文本框失去焦点后,我们验证用户名是否存在。我们定义一个<span id="info"></span>来显示提示信息。

xhtml代码
  1. <form name="regFrom" action="" method="POST"> 
  2. 账户:<input type="text" name="userName" id="userName" onblur="checkUserName()" /><span id="info"></span><br /> 
  3. 密码:<input type="password" name="usePwd" id="userPwd" /><br /> 
  4. 再次输入密码:<input type="password" name="usePwd" id="userPwd" /><br /> 
  5. <input type="submit" name="submit" value="提交" /> <input type="reset" name="reset" value="重置" /> 
  6. </form> 

XMLHttpRequest对象的创建: 

 

php代码
  1. var request = false;  
  2. function createRequest(){  
  3.       
  4.     try  
  5.     {  
  6.         request = new XMLHttpRequest();//创建XMLHttpRequest对象  
  7.     }  
  8.     catch (trymicrosoft) //尝试较新版本的IE浏览器  
  9.     {  
  10.         try  
  11.         {  
  12.             request = new ActiveXObject("Msxml2.XMLHTTP");  
  13.         }  
  14.         catch (othermicrosoft)//尝试旧版本的IE浏览器  
  15.         {  
  16.             try  
  17.             {  
  18.                 request = new ActiveXObject("Microsoft.XMLHTTP");     
  19.             }  
  20.             catch (failed) //如果还没有成功创建,则保证request的值还是为false  
  21.             {  
  22.                 request = false;  
  23.             }             
  24.         }  
  25.     }  
  26.  
  27.     if(!request)  
  28.     {  
  29.         alert("Error initializing XMLHttpRequest!");  
  30.     }  

发送信息:checkUserName()方法

javascript代码
  1. function checkUserName(){  
  2.         createRequest();//调用createRequest()方法  
  3.  
  4.         var url = "checkUserName.php";//定义发送路径  
  5.  
  6.         request.onreadystatechange = getUserInfo;//定于回调方法  
  7.  
  8.         request.open("POST",url,true);//打开请求  
  9.  
  10.         request.setRequestHeader("Content-Type","application/x-www-form-urlencoded");  
  11.  
  12.         request.send(null);//发送请求  
  13.     } 

回调处理方法:

javascript代码
  1. function getUserInfo(){  
  2.         userName = document.getElementById("userName").value;  
  3.         if (request.readyState==4||request.readyState=="complete")//判断HTTP就绪状态  
  4.         {  
  5.             var responseText = request.responseText;//返回的文本  
  6.  
  7.             if(responseText==userName)//用户名相等  
  8.                 document.getElementById('info').innerHTML = '您输入的用户名已经存在';  
  9.             else 
  10.                 document.getElementById('info').innerHTML = '该用户名可以注册';  
  11.         }  
  12.     } 

接下来看看服务器端代码,其实很简单:checkUserName.php

php代码
  1. echo 'iceup'

是的,就一行。这里我们假定,iceup是已经存在的用户名。

运行效果:

ajax运行示例

ajax运行示例

备注:通常情况我们在做验证用户名是否存在时,一般是把用户输入的用户名(参数)发送到服务器端,然后在服务器端处理后,返回相应的提示信息。

posted @ 2009-08-06 11:01  与时俱进  阅读(579)  评论(0编辑  收藏  举报
友情链接:同里老宅院民居客栈