register.php文件
<html> <head> <title>用户注册</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <meta http-equiv="content-type" content="text/html;charset=gb2312" /> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> --> <script type="text/javascript"> //创建ajax引擎 function getXmlHttpObject(){ var xmlHttpRequest; //不同的浏览器获取对象xmlhttprequest对象方法不同 if(window.ActiveXObject){ //IE下创建xmlhttprequest对象 xmlHttpRequest=new ActiveXObject("Microsoft.XMLHTTP"); }else{ //非IE下创建xmlhttprequest对象 xmlHttpRequest=new XMLHttpRequest(); } return xmlHttpRequest; } //验证用户名是否存在 //这里我发现把myXmlHttpRequest=getXmlHttpObject();定义在函数外面结果也是一样,当然作用也是一样 //var myXmlHttpRequest=getXmlHttpObject(); var myXmlHttpRequest;//因为函数外部调用了该变量,所以必须定义为全局变量 function checkName(){ //这里我发现把myXmlHttpRequest=getXmlHttpObject();定义在函数外面结果也是一样,当然作用也是一样 myXmlHttpRequest=getXmlHttpObject(); if(myXmlHttpRequest){ //get方式提交 //var url="/ajax/registerProcess.php?username="+$("username").value; //var url="/ajax/registerProcess.php?mytime="+new Date()+"&username="+$("username").value;//如果不想让浏览器缓存,每次发送的地址都不相同,浏览器就不会缓存,在这里加上时间就可以 //post方式提交 var url="/ajax/registerProcess.php";//这里因为加的文件所有目录的问题,造成找不到该文件,且也无法显示的出错,让我费了一天的时间。 data="username="+$('username').value; //第一个参数post是提交数据的方式 //第二个参数url是提交数据到了哪个页面,这是是/ajax/registerProcess.php,因为程序是新打开,所以最好写上此程序目录所在 //第三个参数true时,说明是异步传送;如果是false是非异步传送 myXmlHttpRequest.open("post",url,true); //当提交方法为post时,要写上这句,固定用法 myXmlHttpRequest.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); //当对象的状态发生改变时,调用返回函数 myXmlHttpRequest.onreadystatechange=chuli; //发送数据 myXmlHttpRequest.send(data); } } function chuli(){ //window.alert("处理函数被调用"+myXmlHttpRequest.readyState); if(myXmlHttpRequest.readyState==4){ //根据返回数据的类型,使用myxmlhttprequest的对象属性,当返回文本数据时,使用responseText属性 //window.alert("服务器无刷新"+myXmlHttpRequest.responseText); $('myres').value=myXmlHttpRequest.responseText; } } function $(id){//把DOM对象封装为一个函数进行调用 return document.getElementById(id); } </script> </head> <body> <form action="???" method="post"> 用户名字:<input type="text" name="username1" id="username"><input type="button" onclick="checkName();" value="验证用户名"> <input style="border-width: 0" type="text" id="myres"> <br/> 用户密码:<input type="password" name="password"><br> 电子邮件:<input type="text" name="email"><br/> <input type="submit" value="用户注册"> </form> <form action="???" method="post"> 用户名字:<input type="text" name="username2" > <br/> 用户密码:<input type="password" name="password"><br> 电子邮件:<input type="text" name="email"><br/> <input type="submit" value="用户注册"> </form> </body> </html>
registerProcess.php
<?php //返回数据的xml格式编码 header("Content-Type:text/xml;charset=gb2312"); //返回数据不缓存 header("Cache-Control:no-cache"); //$username=$_REQUEST['username']; $username=$_POST['username']; if($username=="shunping"){ echo "用户不可用"; }else{ echo "用户名ok"; } //v如果不写最后的这个,说明是被别的程序包着的 ?>