php开发之Ajax异步网络请求
2015-04-30 10:45
381 查看
有的时候我们在网页上输入数据的时候,不用我们点击按钮触发事件。这个小的知识点非常的有用。比如在登录的时候,输入邮箱的时候自动验证的功能,或者自动刷新的功能。或者局部刷新都可以用到的哦,还是很有用的,给大家分享下:
test.html
test.js
index.php
其中在index.php中输出xml文档, 这个感觉要特殊记忆哦,以后可能还会输出html文档的。而且我觉得在UIWebView与js的交互这一块,这个知识点应该是经常会用到的。
运行结果如下:
这个主要就是在没有输入的时候,服务器返回的内容
这个是输入的姓名不能够匹配的时候服务器返回的内容
这个是输入的内容能够匹配的时候服务器返回的内容
在这里啰嗦一下,这些都是自己的边学边整理的,算是自己的笔记哦,有愿意一块共同学习,共同交流的可以到这个博客里一块交流哦:
博客地址:http://blog.csdn.net/hanhailong18
demo下载地址:demo
test.html
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=GB18030"> <title>test ajax</title> <script type ="text/javascript" src ="test.js"> </script> </head> <body onload ="process()"> //onload 这个很重要哦,在加载body的时候就会触发这个process()函数。 Your Name: <input type ="text" id ="myName"> <div id ="divMessage">//一个空的div方便在后面根据服务器返回的内容加载页面,另外在UIWebView与js的交互的时候,通过这个来实现根据后台数据写页面应该是很有用的。 </div> </body> </html>
test.js
var xmlHttp =GetXmlHttpObject(); function GetXmlHttpObject(){ var xmlhttp; if (window.XMLHttpRequest){ // code for IE7+, Firefox, Chrome, Opera, Safari xmlhttp=new XMLHttpRequest(); }else{// code for IE6, IE5 xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); } return xmlhttp; } //----------使用XMLHTTP对象创建异步http请求 function process(){ if (xmlHttp==null){ alert('您的浏览器不支持AJAX!'); return; } //在xmlHttp对象不忙时进行处理 if(xmlHttp.readyState == 4 || xmlHttp.readyState== 0){ //获取用户在表单中输入的姓名 name = encodeURIComponent(document.getElementById("myName").value); var url ="http://localhost/PHPTEST/index.php?name="; xmlHttp.open("GET",url+name,true); //定义获取服务器端响应的方法 xmlHttp.onreadystatechange =handleServerResponse; xmlHttp.send(); }else{ //如果服务器忙,1秒后重试 setTimeout('process()',2000); } } //当收到服务器端的消息时自动执行 function handleServerResponse(){ //在处理结束时进入第一步 if(xmlHttp.readyState == 4){// 这个地方要多多的注意哦,我刚开始的时候就把xmlHttp.readyState,写成了xmlHttp.readystatus结果可想而知了,xmlHttp.readystatus为undefined肯定不能够跟4进行匹配了,直接跳出条件判断,什么也不错,我花了好久的时间才找到的这个问题的所在,所以咱们编程序的粗心要不得哦,害死人啊。 //状态为200时表示处理成功 if(xmlHttp.status == 200){ //获取服务器端发来的XML消息 xmlResponse =xmlHttp.responseXML; //获取XML文档中的根对象 xmlDocumentElement = xmlResponse.documentElement; //获取第一个文档子元素的文本消息 helloMessage = xmlDocumentElement.firstChild.data; //使用从服务器发来的消息更新客户端显示的内容 document.getElementById("divMessage").innerHTML='<i>' + helloMessage + '</i>'; //重新开始 setTimeout('process()',2000); }else{ //如果状态不是200表示http请求发生错误 alert("There is a problem accessing server:" + xmlHttp.statusText); } } }
index.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('CRISTAIN','BOGDAN','FILIP','MIHAI','YODA'); if (in_array(strtoupper($name), $userNames)) {//这个主要就是用来判断这个名字有没有在字符串里面 echo 'hello master '.htmlentities($name).'!'; }else if (trim($name) =='') {//没有输入内容的时候就会出现这样的内容 echo "stranger,please tell your name !"; } else { echo htmlentities($name).' I don\'t know you!'; } //关闭response元素 echo '</response>'; ?>
其中在index.php中输出xml文档, 这个感觉要特殊记忆哦,以后可能还会输出html文档的。而且我觉得在UIWebView与js的交互这一块,这个知识点应该是经常会用到的。
运行结果如下:
这个主要就是在没有输入的时候,服务器返回的内容
这个是输入的姓名不能够匹配的时候服务器返回的内容
这个是输入的内容能够匹配的时候服务器返回的内容
在这里啰嗦一下,这些都是自己的边学边整理的,算是自己的笔记哦,有愿意一块共同学习,共同交流的可以到这个博客里一块交流哦:
博客地址:http://blog.csdn.net/hanhailong18
demo下载地址:demo
相关文章推荐
- iOS网络开发中的同步、异步和请求队列
- 【iOS开发】用户点击频繁,多个异步网络请求取消问题?
- IOS开发之NSURL网络请求,同步异步,GET,POST
- ajax异步请求php后台处理耗时任务session_write_close
- IOS开发—网络请求之代理异步请求
- iOS开发之网络编程篇三:同步,异步请求差异及用法
- IOS开发中异步网络请求上实现同步逻辑
- PHP服务器文件管理器开发小结(三):使用jQuery提交AJAX请求
- iOS 网络开发NSURLConnection——使用block回调方法发送异步请求
- Ajax异步交互与php请求响应的实现
- PHP----Ajax异步请求
- iOS开发那些事-iOS网络编程异步GET方法请求编程
- iOS开发——POST异步网络请求自行封装
- javaweb开发中异步ajax请求之DWR框架详解(通过直接访问java类实现异步请求处理)
- iOS开发——post异步网络请求封装
- Android 开发之异步网络请求(AsyncHttp开发)
- PHP----Ajax异步请求
- iOS开发--用户点击频繁,多个异步网络请求取消问题?
- 本地端口模拟ajax异步请求php文件
- iOS网络开发中的同步、异步和请求队列