需要两个PHP页面:1.php是发出请求和接受请求结果的。2.php是处理请求的结果。

1.php中代码:

  1. <a href="#" onclick="sendAjaxRequest();"></a>

要有能触发JS中函数的标签,这里是a标签。在1.php页面中有JS代码进行请求:

  1. var http_request=false;
  2. function sendAjaxRequest(){
  3. //alert('进入执行SEND');
  4. //执行前先进行清理上次的结果操作
  5. SetHidden();//这里模拟各种对页面的操作
  6. if(window.XMLHttpRequest)//请求对象是JavaScript中的对象XMLHttpRequest。
  7. {
  8. http_request=new XMLHttpRequest();
  9. }else if(window.ActiveXObject){
  10. try
  11. {
  12. http_request=new ActiveXObject("Msxml2.XMLHTTP");//IE
  13. }catch (e){
  14. try{
  15. http_request=new ActiveXObject("Microsoft.XMLHTTP");//ForeFox
  16. }catch(e){}
  17. }
  18. }
  19. if(http_request)
  20. {
  21.  
  22. http_request.open("POST","2.php",true);//指定请求处理页和请求方式及是不是异步
  23. http_request.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');//设置请求头,应该还能设置其他请求头部信息
  24. var postdata="keyword="+encodeURI(document.getElementById("keyword").value);//POST的数据,如果是GET方法就不用这里了
  25.  
  26. http_request.onreadystatechange = updatePage;//页面2.php交互请求时,指定函数updatePage来处理页面2.php的响应,有5种响应,所以要进行选择处理
  27. http_request.send(postdata);//发送POST数据
  28. }
  29. }
  30.  
  31. function updatePage(){//此函数根据2.php所做的反应,来对页面1.php作出一些动作
  32. if(http_request.readyState==4)//有5种响应0--4,最后一种4是处理完请求
  33. {
  34. //alert('响应已完成,可以访问服务器响应并使用它');
  35. //alert(http_request.responseText);
  36. var div=document.getElementById("divresult");
  37. if(http_request.responseText.split(';')[0]!=""&&http_request.responseText.split(';')[0]!=undefined&&http_request.responseText.split(';')[1]!=undefined)
  38. {
  39. document.getElementById("label3").innerHTML=http_request.responseText.split(';')[0]+" ";
  40. document.getElementById("label5").innerHTML=http_request.responseText.split(';')[1]+" ";//这里responseText,是页面2.php echo函数打印的所有数据
  41. div.style.display="block";
  42. }
  43. else
  44. {
  45.  
  46. alert("2.php处理完了");
  47. }
  48.  
  49. }
  50. }
  51. function SetHidden(){
  52. document.getElementById("divresult").style.display="none";
  53. }

2.php中的响应:

  1. <?php //做出的响应页面,
  2. $link=mysql_connect("192.168.100.100","ccc","ccc");
  3.  
  4. if($link)
  5. {
  6. $db_select=mysql_select_db("search",$link);
  7. mysql_query("set names utf8");
  8. }
  9.  
  10. if($db_select)
  11. {
  12. $result=mysql_query("select proname,person from search where APPKEY='".$_POST[keyword]."'",$link);
  13. mysql_close($link);
  14. }
  15.  
  16. if($result)
  17. {
  18. $info=mysql_fetch_array($result);
  19. mysql_free_result($result);
  20. }
  21.  
  22. if($info)
  23. {
  24. echo $info[proname];//最主要是输出的内容,是与1.php进行交互的基础,另一种交互的方法是用GET和POST请求对1.php再次发出,1.php进行接收请求
  25. echo ";".$info[1];
  26. }
  27.  
  28. ?>

PHP----Ajax异步请求的更多相关文章

  1. ajax异步请求

    做前端开发的朋友对于ajax异步更新一定印象深刻,作为刚入坑的小白,今天就和大家一起聊聊关于ajax异步请求的那点事.既然是ajax就少不了jQuery的知识,推荐大家访问www.w3school.c ...

  2. spring HandlerInterceptorAdapter拦截ajax异步请求,报错ERR_INCOMPLETE_CHUNKED_ENCODING

    话不多说,直接上正文. 异常信息: Failed to load resource: net::ERR_INCOMPLETE_CHUNKED_ENCODING 问题描述: 该异常是在页面发送ajax请 ...

  3. jquery Ajax异步请求之session

    写了一个脚本,如下: $(function () { $("#btnVcode").click(function () { var receiveMobile = $(" ...

  4. ajax异步请求Response.Redirect重定向

    一个ajax异步请求报错->捕获异常->重定向错误提示页面.  一个简单的流程 结果一直搞不定.重定向无效.各种百度之. 后来突然想起 ajax的请求是不能在后台重定向的. 如果硬要重定向 ...

  5. jquery的ajax异步请求接收返回json数据

    http://www.jb51.net/article/51122.htm jquery的ajax异步请求接收返回json数据方法设置简单,一个是服务器处理程序是返回json数据,另一种就是ajax发 ...

  6. MVC&WebForm对照学习:ajax异步请求

    写在前面:由于工作需要,本人刚接触asp.net mvc,虽然webform的项目干过几个.但是也不是很精通.抛开asp.net webform和asp.net mvc的各自优劣和诸多差异先不说.我认 ...

  7. AJAX异步请求原理和过程

    AJAX 指异步 JavaScript 及 XML(Asynchronous JavaScript And XML),它不是一种新的编程语言,而是一种使用现有标准的新方法. AJAX 基于 JavaS ...

  8. Ajax异步请求-简单模版

    <script type="text/javascript"> window.onload = function () { document.getElementByI ...

  9. art.dialog 与 ajax 异步请求

    上周写了一些代码,涉及到jquery异步请求,这里归纳总结下,希望对刚接触编程的同学有帮助. 主要习惯使用 art.dialog 框架,非常好用,在异步请求上,它提供了很多简便的方法. 加载使用art ...

  10. ajax异步请求不能刷新数据的问题

    搞了两三天的问题,今天解决了.总结下: function reportGrpChange(cuid, title){ document.getElementById('reportFrameDiv') ...

随机推荐

  1. Linux不重启的情况下添加硬盘

    众所周知,SATA和SCSI是支持热插拔的,但是新装了这类支持热插拔的驱动器,系统不会马上识别的,往往我们需要重启系统来识别,但是有另外一种方法可以很方面的让系统识别新的设备.作为系统管理员,需要了解 ...

  2. Mybatis——oracle 的模糊查询 和 日期处理

    第一种 1 <if test="AGTNAM !=null and AGTNAM !=''"> <![CDATA[and AGTNAM like concat(c ...

  3. [转]IPTABLES中SNAT和MASQUERADE的区别

    IPtables中可以灵活的做各种网络地址转换(NAT)网络地址转换主要有两种:SNAT和DNAT SNAT是source network address translation的缩写即源地址目标转换 ...

  4. nodejs-helloword案例

    确认正确看着了node 本例处理环境win10 创建文件helloword.js.如下图:存放位置 具体内容详细 var http = require('http'); http.createServ ...

  5. hive 使用笔记(table format;lateral view)

    1. create table 创建一张目标表,指定分隔符和存储格式: create table tmp_2 (resource_id bigint ,v int) ROW FORMAT DELIMI ...

  6. javaScript与MVC

    MVC,就是Module,View,Controller分离,使业务逻辑更加清晰,但是现在公司的项目中很多地方那个不是这样的,很多业务逻辑放在了javascript中实现,这样做的优点就是对于技术要求 ...

  7. asp.net下webform的ReadOnly和Enabled属性最终渲染的结果

    ReadOnly对应readonly="readonly" Enabled对应disabled="disabled" 然后研究了一下这两种的用法,特此标记一下: ...

  8. rsync服务器安装配置

    #rsync指定端口号(10002)1 rsync -e 'ssh -p 10002' rsync (server -- client) #2014-3-3 -----------server---- ...

  9. 谈谈JavaScript MVC模式

    第一个是:没有使用mvc模式的: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "h ...

  10. jpa findOne()用法

    findOne(Interger id) 如果实体类没有id这个属性的话是会报错的 改别人的代码神烦...