韩顺平 PHP视频教程 Ajax技术第05讲-返回XML如何处理

来源:互联网 发布:windows网络抓包工具 编辑:程序博客网 时间:2024/05/20 00:48

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;//下面属性后面是小括号,开始用了大括号,费了很久//var mes=myXmlHttpRequest.responseXML.getElementsByTagName("mes");//mes[0]—>表示标签为mes的第一个节点//mes[0]->表示标签为mes的第一个节点的第一个子节点var mes=myXmlHttpRequest.responseXML.getElementsByTagName("mes");var mes_val=mes[0].childNodes[0].nodeValue;$('myres').value=mes_val;//window.alert(mes_val); }}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'];//这里看看如何处理格式是xml$info="";if($username=="shunping"){$info.="<res><mes>用户不可用</mes></res>";}else{$info.="<res><mes>用户名ok</mes></res>";}echo $info;//v如果不写最后的这个,说明是被别的程序包着的?>







原创粉丝点击