PHP----Ajax异步请求
需要两个PHP页面:1.php是发出请求和接受请求结果的。2.php是处理请求的结果。
1.php中代码:
<a href="#" onclick="sendAjaxRequest();"></a>
要有能触发JS中函数的标签,这里是a标签。在1.php页面中有JS代码进行请求:
var http_request=false;
function sendAjaxRequest(){
//alert('进入执行SEND');
//执行前先进行清理上次的结果操作
SetHidden();//这里模拟各种对页面的操作
if(window.XMLHttpRequest)//请求对象是JavaScript中的对象XMLHttpRequest。
{
http_request=new XMLHttpRequest();
}else if(window.ActiveXObject){
try
{
http_request=new ActiveXObject("Msxml2.XMLHTTP");//IE
}catch (e){
try{
http_request=new ActiveXObject("Microsoft.XMLHTTP");//ForeFox
}catch(e){}
}
}
if(http_request)
{ http_request.open("POST","2.php",true);//指定请求处理页和请求方式及是不是异步
http_request.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');//设置请求头,应该还能设置其他请求头部信息
var postdata="keyword="+encodeURI(document.getElementById("keyword").value);//POST的数据,如果是GET方法就不用这里了 http_request.onreadystatechange = updatePage;//页面2.php交互请求时,指定函数updatePage来处理页面2.php的响应,有5种响应,所以要进行选择处理
http_request.send(postdata);//发送POST数据
}
} function updatePage(){//此函数根据2.php所做的反应,来对页面1.php作出一些动作
if(http_request.readyState==4)//有5种响应0--4,最后一种4是处理完请求
{
//alert('响应已完成,可以访问服务器响应并使用它');
//alert(http_request.responseText);
var div=document.getElementById("divresult");
if(http_request.responseText.split(';')[0]!=""&&http_request.responseText.split(';')[0]!=undefined&&http_request.responseText.split(';')[1]!=undefined)
{
document.getElementById("label3").innerHTML=http_request.responseText.split(';')[0]+" ";
document.getElementById("label5").innerHTML=http_request.responseText.split(';')[1]+" ";//这里responseText,是页面2.php echo函数打印的所有数据
div.style.display="block";
}
else
{ alert("2.php处理完了");
} }
}
function SetHidden(){
document.getElementById("divresult").style.display="none";
}
2.php中的响应:
<?php //做出的响应页面,
$link=mysql_connect("192.168.100.100","ccc","ccc"); if($link)
{
$db_select=mysql_select_db("search",$link);
mysql_query("set names utf8");
} if($db_select)
{
$result=mysql_query("select proname,person from search where APPKEY='".$_POST[keyword]."'",$link);
mysql_close($link);
} if($result)
{
$info=mysql_fetch_array($result);
mysql_free_result($result);
} if($info)
{
echo $info[proname];//最主要是输出的内容,是与1.php进行交互的基础,另一种交互的方法是用GET和POST请求对1.php再次发出,1.php进行接收请求
echo ";".$info[1];
} ?>
PHP----Ajax异步请求的更多相关文章
- ajax异步请求
做前端开发的朋友对于ajax异步更新一定印象深刻,作为刚入坑的小白,今天就和大家一起聊聊关于ajax异步请求的那点事.既然是ajax就少不了jQuery的知识,推荐大家访问www.w3school.c ...
- spring HandlerInterceptorAdapter拦截ajax异步请求,报错ERR_INCOMPLETE_CHUNKED_ENCODING
话不多说,直接上正文. 异常信息: Failed to load resource: net::ERR_INCOMPLETE_CHUNKED_ENCODING 问题描述: 该异常是在页面发送ajax请 ...
- jquery Ajax异步请求之session
写了一个脚本,如下: $(function () { $("#btnVcode").click(function () { var receiveMobile = $(" ...
- ajax异步请求Response.Redirect重定向
一个ajax异步请求报错->捕获异常->重定向错误提示页面. 一个简单的流程 结果一直搞不定.重定向无效.各种百度之. 后来突然想起 ajax的请求是不能在后台重定向的. 如果硬要重定向 ...
- jquery的ajax异步请求接收返回json数据
http://www.jb51.net/article/51122.htm jquery的ajax异步请求接收返回json数据方法设置简单,一个是服务器处理程序是返回json数据,另一种就是ajax发 ...
- MVC&WebForm对照学习:ajax异步请求
写在前面:由于工作需要,本人刚接触asp.net mvc,虽然webform的项目干过几个.但是也不是很精通.抛开asp.net webform和asp.net mvc的各自优劣和诸多差异先不说.我认 ...
- AJAX异步请求原理和过程
AJAX 指异步 JavaScript 及 XML(Asynchronous JavaScript And XML),它不是一种新的编程语言,而是一种使用现有标准的新方法. AJAX 基于 JavaS ...
- Ajax异步请求-简单模版
<script type="text/javascript"> window.onload = function () { document.getElementByI ...
- art.dialog 与 ajax 异步请求
上周写了一些代码,涉及到jquery异步请求,这里归纳总结下,希望对刚接触编程的同学有帮助. 主要习惯使用 art.dialog 框架,非常好用,在异步请求上,它提供了很多简便的方法. 加载使用art ...
- ajax异步请求不能刷新数据的问题
搞了两三天的问题,今天解决了.总结下: function reportGrpChange(cuid, title){ document.getElementById('reportFrameDiv') ...
随机推荐
- Percona 开始尝试基于Ceph做上层感知的分布式 MySQL 集群,使用 Ceph 提供的快照,备份和 HA 功能来解决分布式数据库的底层存储问题
本文由 Ceph 中国社区 -QiYu 翻译 英文出处:Using Ceph with MySQL 欢迎加入CCTG Over the last year, the Ceph world drew m ...
- Jsoup获取部分页面数据失败 org.jsoup.UnsupportedMimeTypeException: Unhandled content type. Must be text/*, application/xml, or application/xhtml+xml.
用Jsoup在获取一些网站的数据时,起初获取很顺利,但是在访问某浪的数据是Jsoup报错,应该是请求头里面的请求类型(ContextType)不符合要求. 请求代码如下: private static ...
- angular指令大全
这篇文章的案例都是来自官方,引用的cdn来自bootcss, 因为angular的官方网站被屏了, 所以要翻, 不过我把整个文档下回来了,方便大家下载可以点击: 打开下载英文版 angular的指令 ...
- 让Chrome支持Ajax/$http方式读取本地文件
在开发中经常写些小demo调试一下插件什么的 数据源又经常手动构造分离为一个单独的文件.用ajax或$http去访问时总是拒绝访问.这个时候可以给Chrome的快捷图标加启动参数,让浏览器允许js访问 ...
- 【POJ 3177】Redundant Paths(边双连通分量)
求出每个边双连通分量缩点后的度,度为1的点即叶子节点.原图加上(leaf+1)/2条边即可变成双连通图. #include <cstdio> #include <cstring> ...
- python 学习笔记7(类/对象的属性;特性,__getattr__)
27. 属性的__dict__系统 1)对象的属性可能来自: 其类的定义,叫做类属性 继承父类的定义 该对象实例定义(初始化对象时赋值),叫做对象属性 2)对象的属性存储在对象的 __dict__ 属 ...
- Linux下的IO模式
对于一次IO访问(以read举例),数据会先被拷贝到操作系统内核的缓冲区中,然后才会从操作系统内核的缓冲区拷贝到应用程序的地址空间.所以说,当一个read操作发生时,它会经历两个阶段:1. 等待数据准 ...
- Windows Registry Security Check
catalog . Windows注册表 . Windows注册表包含的攻击向量 . 注册表安全配置基线标定 1. Windows注册表 注册表(Registry,繁体中文版Windows称之为登录档 ...
- VC++ 比较两个字符串是否相等,字母大小写相关。
1.strcmp 这是用于ANSI标准字符串的函数(如string和char *),此函数接受两个字符串缓冲区做为参数,如果两个字符串是相同的则返回零.否则若第一个传入的字符串的值大于第二个字符串返回 ...
- 第三次作业——K米评测
第一部分 调研,评测 1.第一次上手体验 其实让我下载一个APP并且长期使用它是一件特别难的事情,不仅是因为占空间,需要注册个人信息,绑定账号,更是因为每款软件的功能虽然都很齐全,但是你并在没有真正用 ...