承接北京地区网站建设业务,1月底恢复接单!
PHP+AJAX的实现
上一篇 / 下一篇 2007-01-16 12:02:05 / 个人分类:PHP
ajax可以说的上当今很火的技术啦.PHPChina 开源社区门户9\s5s%ILQN\Hz
在村子里经常看到有人问xajax的技术,说实话,我觉得那东西太麻烦,用起来太费事.
&gj#K0^ t U2e;Ed0PHPChina 开源社区门户k|t F'Sx
ajax本身实现的机制不是很难,难的应该是在后期的javascrīpt处理返回的responseText,responseXmlPHPChina 开源社区门户`K:BM R]#xC
9Q}9wUL5qTH0ajax本身的操作过程无外是:PHPChina 开源社区门户 j/he5{Y
PHPChina 开源社区门户(~jW8?4nNg`)D
1.构建一个xmlHTTP对像PHPChina 开源社区门户VUip:UQvP)?ah
2.通过xmlHTTP的同步或是异步方式发送数据(大部分都是异步方式)PHPChina 开源社区门户} ~ |Dk.nmBQ:z
3.如果是异步方式检查xmlHttp的状态变化
5c!M&B`PN*}+e;V%K04.当状态变到readyState==4,而且status==200说明发送数据成功PHPChina 开源社区门户)^5{Jn7H4P%~T#C
5.这时候再通过javascrīpt处理xmlHTTP的responseText或是responseXml(这两者是同时存在的)
QG$``,^Xf0
&aP3}t"P~QV9]0下面来实现这个过程PHPChina 开源社区门户O-z1ZKW3LVm
1.构建一个xmlHTTP的对像PHPChina 开源社区门户"` R5P2[H r7F)O w
PHPChina 开源社区门户x'sH.xW|8e5c}
PHPChina 开源社区门户:mw:f(nQ'`#?@B
PHPChina 开源社区门户&^ u9Bm+Z"|Rd#T4}3r
第二步发送数据
dCC/sU:VlDp0这里主要是调用xmlHttp的open方法和send方法来处理
r#zU1ShX9dT$i O0xmlHTTP的方法可以到www.xmlhttp.cn查看(我以前发过一个chm的,但因为版权被村长删除啦,谁要是想要,回信,我发一下)PHPChina 开源社区门户3[-_3x"@)l%e
下面是用post的方法发送数据
%cL-R5R ]\Y*_5k0
-WyU7l#]4d0
9UMg g$q [$P:GW}7D"G0
`8_vi-}c]"U0当状态改变时会调用onreadystatechange属性指定的回调函数showData,来来检查状态变化PHPChina 开源社区门户?z9Z(|zX w5H
PHPChina 开源社区门户)w JnO0F[biR"T
xmlHTTP.readyState 和xmlHTTP.status 可以去查手册,看一下就知道
E!PL D/]#h0
"| jvRf)_{ Zop0
完整的代码是PHPChina 开源社区门户BW;hl8D3|m.F
PHPChina 开源社区门户9yd/xT j I+Z3iG
~4sD*g l;e2O h0内容为
aj6Bp+a GdxZ0
;q_d+M@k)sQ0f UVK0
在村子里经常看到有人问xajax的技术,说实话,我觉得那东西太麻烦,用起来太费事.
&gj#K0^ t U2e;Ed0PHPChina 开源社区门户k|t F'Sx
ajax本身实现的机制不是很难,难的应该是在后期的javascrīpt处理返回的responseText,responseXmlPHPChina 开源社区门户`K:BM R]#xC
9Q}9wUL5qTH0ajax本身的操作过程无外是:PHPChina 开源社区门户 j/he5{Y
PHPChina 开源社区门户(~jW8?4nNg`)D
1.构建一个xmlHTTP对像PHPChina 开源社区门户VUip:UQvP)?ah
2.通过xmlHTTP的同步或是异步方式发送数据(大部分都是异步方式)PHPChina 开源社区门户} ~ |Dk.nmBQ:z
3.如果是异步方式检查xmlHttp的状态变化
5c!M&B`PN*}+e;V%K04.当状态变到readyState==4,而且status==200说明发送数据成功PHPChina 开源社区门户)^5{Jn7H4P%~T#C
5.这时候再通过javascrīpt处理xmlHTTP的responseText或是responseXml(这两者是同时存在的)
QG$``,^Xf0
&aP3}t"P~QV9]0下面来实现这个过程PHPChina 开源社区门户O-z1ZKW3LVm
1.构建一个xmlHTTP的对像PHPChina 开源社区门户"` R5P2[H r7F)O w
PHPChina 开源社区门户x'sH.xW|8e5c}
CODE:
function createRequest(){PHPChina 开源社区门户*~y!CO%?!h5e_)v
if(typeof XMLHttpRequest!="undefined") {
)Ug};L7l i~ y6j$qO0 return new XMLHttpRequest();
N~ jQC*D5T3^&O||Xc0 }else if(typeof ActiveXObject!="undefined"){PHPChina 开源社区门户2S0\!AaC0L,}E{E*Xu
var xmlHttp_ver = false;PHPChina 开源社区门户v {-@#U$G7Ela
var xmlHttp_vers = ["MSXML2.XmlHttp.5.0","MSXML2.XmlHttp.4.0","MSXML2.XmlHttp.3.0","MSXML2.XmlHttp","Microsoft.XmlHttp"];
v"o|%s)Q0 if(!xmlHttp_ver){PHPChina 开源社区门户4pn#L"G-Y5qT
for(var i=0;i<xmlHttp_vers.length;i++){
:ks8K3^Z-z0 try{PHPChina 开源社区门户$B3Cb:E l
new ActiveXObject(xmlHttp_vers[i]);PHPChina 开源社区门户:}*T;c H~5[i$mip
xmlHttp_ver = xmlHttp_vers[i];PHPChina 开源社区门户5w3t3k-or}-j
break;PHPChina 开源社区门户 c0} P9whTN
}catch(oError){;}PHPChina 开源社区门户 r!my@.|;U
}PHPChina 开源社区门户1fX1f@)\
}PHPChina 开源社区门户}u} bQ5W
if(xmlHttp_ver){
\T%hvh!t}"@[;XV0 return new ActiveXObject(xmlHttp_ver);PHPChina 开源社区门户O"`3T,T^N @
}else{PHPChina 开源社区门户k0uq!u%{VC
throw new Error("Could not create XML HTTP Request.");PHPChina 开源社区门户%X Pz:J dehA
}
$o \PC4WZpk2i0 }else{
Y d"q2Ni(N'd3G0 throw new Error("Your browser doesn't support an XML HTTP Request.");PHPChina 开源社区门户VFscB0H
}PHPChina 开源社区门户7w*wLV0c:}&N#h
}
注意:xmlHttp_vers 应该从版本高的往版本低的写,这样建立对像的数据调用的是你机子上安装过的最高版本的MSXML2.XmlHttpPHPChina 开源社区门户|:k9j6_vXif(typeof XMLHttpRequest!="undefined") {
)Ug};L7l i~ y6j$qO0 return new XMLHttpRequest();
N~ jQC*D5T3^&O||Xc0 }else if(typeof ActiveXObject!="undefined"){PHPChina 开源社区门户2S0\!AaC0L,}E{E*Xu
var xmlHttp_ver = false;PHPChina 开源社区门户v {-@#U$G7Ela
var xmlHttp_vers = ["MSXML2.XmlHttp.5.0","MSXML2.XmlHttp.4.0","MSXML2.XmlHttp.3.0","MSXML2.XmlHttp","Microsoft.XmlHttp"];
v"o|%s)Q0 if(!xmlHttp_ver){PHPChina 开源社区门户4pn#L"G-Y5qT
for(var i=0;i<xmlHttp_vers.length;i++){
:ks8K3^Z-z0 try{PHPChina 开源社区门户$B3Cb:E l
new ActiveXObject(xmlHttp_vers[i]);PHPChina 开源社区门户:}*T;c H~5[i$mip
xmlHttp_ver = xmlHttp_vers[i];PHPChina 开源社区门户5w3t3k-or}-j
break;PHPChina 开源社区门户 c0} P9whTN
}catch(oError){;}PHPChina 开源社区门户 r!my@.|;U
}PHPChina 开源社区门户1fX1f@)\
}PHPChina 开源社区门户}u} bQ5W
if(xmlHttp_ver){
\T%hvh!t}"@[;XV0 return new ActiveXObject(xmlHttp_ver);PHPChina 开源社区门户O"`3T,T^N @
}else{PHPChina 开源社区门户k0uq!u%{VC
throw new Error("Could not create XML HTTP Request.");PHPChina 开源社区门户%X Pz:J dehA
}
$o \PC4WZpk2i0 }else{
Y d"q2Ni(N'd3G0 throw new Error("Your browser doesn't support an XML HTTP Request.");PHPChina 开源社区门户VFscB0H
}PHPChina 开源社区门户7w*wLV0c:}&N#h
}
PHPChina 开源社区门户:mw:f(nQ'`#?@B
PHPChina 开源社区门户&^ u9Bm+Z"|Rd#T4}3r
第二步发送数据
dCC/sU:VlDp0这里主要是调用xmlHttp的open方法和send方法来处理
r#zU1ShX9dT$i O0xmlHTTP的方法可以到www.xmlhttp.cn查看(我以前发过一个chm的,但因为版权被村长删除啦,谁要是想要,回信,我发一下)PHPChina 开源社区门户3[-_3x"@)l%e
下面是用post的方法发送数据
%cL-R5R ]\Y*_5k0
-WyU7l#]4d0
CODE:
var xmlHttp;
&MN_6B3[ x0d5QmR0xmlHttp = createRequest();
x%a9d/CH:u0function sendPostRequest()
S"X#SV[7t0{ PHPChina 开源社区门户"JIXU8cE
var shownum=document.getElementById("shownum").value;// html页面中一个id为shownum的input表单PHPChina 开源社区门户+?(^$tM[:G'V `Y
var url = "show.php";//要发送到的URLPHPChina 开源社区门户XYPbAF|
var queryString = "shownum" + "=" + shownum;
HQ1@6_7i+b7[8N;Q0 //向服务端发送请求PHPChina 开源社区门户`"}7[3^qe W
xmlHttp.open("post", url, true);//这里的第三个参数为true为异步方式处理
l:tS N:|!G5c&|0 xmlHttp.onreadystatechange = showData;//异步方式处理,当状态改变时会调用onreadystatechange属性指定的回调函数showDataPHPChina 开源社区门户4f"WB C6A(T2^6t
xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;");//这一句是用post方法发送的时候必须写的PHPChina 开源社区门户d#{&\.~pd&q)Wp,f
xmlHttp.send(queryString);//发送你构建成的数据,如果为“get”方法时,这里可以写成xmlHttp.send(NULL);
j'Jw@|bp0}
第三步&MN_6B3[ x0d5QmR0xmlHttp = createRequest();
x%a9d/CH:u0function sendPostRequest()
S"X#SV[7t0{ PHPChina 开源社区门户"JIXU8cE
var shownum=document.getElementById("shownum").value;// html页面中一个id为shownum的input表单PHPChina 开源社区门户+?(^$tM[:G'V `Y
var url = "show.php";//要发送到的URLPHPChina 开源社区门户XYPbAF|
var queryString = "shownum" + "=" + shownum;
HQ1@6_7i+b7[8N;Q0 //向服务端发送请求PHPChina 开源社区门户`"}7[3^qe W
xmlHttp.open("post", url, true);//这里的第三个参数为true为异步方式处理
l:tS N:|!G5c&|0 xmlHttp.onreadystatechange = showData;//异步方式处理,当状态改变时会调用onreadystatechange属性指定的回调函数showDataPHPChina 开源社区门户4f"WB C6A(T2^6t
xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;");//这一句是用post方法发送的时候必须写的PHPChina 开源社区门户d#{&\.~pd&q)Wp,f
xmlHttp.send(queryString);//发送你构建成的数据,如果为“get”方法时,这里可以写成xmlHttp.send(NULL);
j'Jw@|bp0}
9UMg g$q [$P:GW}7D"G0
`8_vi-}c]"U0当状态改变时会调用onreadystatechange属性指定的回调函数showData,来来检查状态变化PHPChina 开源社区门户?z9Z(|zX w5H
PHPChina 开源社区门户)w JnO0F[biR"T
xmlHTTP.readyState 和xmlHTTP.status 可以去查手册,看一下就知道
E!PL D/]#h0
"| jvRf)_{ Zop0
CODE:
function showData()PHPChina 开源社区门户_7|*M:kNb#b#xx
{
)v2~9J^u%e'^0 var msg=document.getElementById("status");PHPChina 开源社区门户vu\'Q.e7E
//第4步PHPChina 开源社区门户Bk;MM\ \.Vut,R;p
if(xmlHttp.readyState==4)PHPChina 开源社区门户2GT3pq8P6pJ4}
{
A(Lt_+@#t6EX Y-x0 if(xmlHttp.status==200)
^M+[? K0 {
7Ug6j"rj o7W0 //只有当readyState为4并且status为200时,才表示符合要求
+R`T-bMJ[7?0 //下面这一句话,就相当于上面说的第5步,处理返回的结果
,?+|-a\ |!GO0|0 msg.innerHTML = xmlHttp.responseText;PHPChina 开源社区门户AfE fFw5P o
}PHPChina 开源社区门户xHPOM%e d,R"x
}PHPChina 开源社区门户y Y St~#rHhQD
else
5Ef2l2Dq;f"R0 {
-ikWM5?B0 switch(xmlHttp.readyState)
Pj z @L*}ZsU(a0 {PHPChina 开源社区门户X&x'zpGx
case 0:PHPChina 开源社区门户~L6l\G0Z
msg.innerHTML="未初始化...";
0t$q f yE A] [0 break;PHPChina 开源社区门户 ~)I}'u JL`#X[
case 1:
4y E%X2o4y%w%c0 msg.innerHTML="加载中...";PHPChina 开源社区门户Dojzel+nX
break;
:r'j2xGJyZ+k0 case 2:PHPChina 开源社区门户VS2sae\p7~`%X
msg.innerHTML="连接完成...";PHPChina 开源社区门户*T8\L}Q
break;
j*| [aU:[0 case 3:
wWDQ`"w}1[p/Iz0 msg.innerHTML="交换数据...";
j%wx1q,z0 break;PHPChina 开源社区门户ys1i;Z E TzQ|
default:PHPChina 开源社区门户1b1R%Wp-q;@6_/b%O
break;
JM#aPp2M_0 }PHPChina 开源社区门户~ckL0dOf h9];h
}
0S.P8D,X+Q*{4Vt0}
到这里就一次xmlhttp发送异步调用数据也就算完成啦PHPChina 开源社区门户CG5}*?$R4G8N-H{
)v2~9J^u%e'^0 var msg=document.getElementById("status");PHPChina 开源社区门户vu\'Q.e7E
//第4步PHPChina 开源社区门户Bk;MM\ \.Vut,R;p
if(xmlHttp.readyState==4)PHPChina 开源社区门户2GT3pq8P6pJ4}
{
A(Lt_+@#t6EX Y-x0 if(xmlHttp.status==200)
^M+[? K0 {
7Ug6j"rj o7W0 //只有当readyState为4并且status为200时,才表示符合要求
+R`T-bMJ[7?0 //下面这一句话,就相当于上面说的第5步,处理返回的结果
,?+|-a\ |!GO0|0 msg.innerHTML = xmlHttp.responseText;PHPChina 开源社区门户AfE fFw5P o
}PHPChina 开源社区门户xHPOM%e d,R"x
}PHPChina 开源社区门户y Y St~#rHhQD
else
5Ef2l2Dq;f"R0 {
-ikWM5?B0 switch(xmlHttp.readyState)
Pj z @L*}ZsU(a0 {PHPChina 开源社区门户X&x'zpGx
case 0:PHPChina 开源社区门户~L6l\G0Z
msg.innerHTML="未初始化...";
0t$q f yE A] [0 break;PHPChina 开源社区门户 ~)I}'u JL`#X[
case 1:
4y E%X2o4y%w%c0 msg.innerHTML="加载中...";PHPChina 开源社区门户Dojzel+nX
break;
:r'j2xGJyZ+k0 case 2:PHPChina 开源社区门户VS2sae\p7~`%X
msg.innerHTML="连接完成...";PHPChina 开源社区门户*T8\L}Q
break;
j*| [aU:[0 case 3:
wWDQ`"w}1[p/Iz0 msg.innerHTML="交换数据...";
j%wx1q,z0 break;PHPChina 开源社区门户ys1i;Z E TzQ|
default:PHPChina 开源社区门户1b1R%Wp-q;@6_/b%O
break;
JM#aPp2M_0 }PHPChina 开源社区门户~ckL0dOf h9];h
}
0S.P8D,X+Q*{4Vt0}
完整的代码是PHPChina 开源社区门户BW;hl8D3|m.F
PHPChina 开源社区门户9yd/xT j I+Z3iG
CODE:
<html>
7{*C:xuCQ3fK%L N,\gv0<head>PHPChina 开源社区门户#Nj] ` E~ LXj
<title>PHPChina 开源社区门户N'Kw*@-zb,_ Y8R
ajax
~ K9Mfi p8_a0</title>PHPChina 开源社区门户%tk/O:r:P6S$g
<scrīpt language="javascrīpt">
#@7EXf kp TNbo0function createRequest(){PHPChina 开源社区门户VR%c*L"lM
if(typeof XMLHttpRequest!="undefined") {
MNb*X{5nm(q0 return new XMLHttpRequest();PHPChina 开源社区门户4F*yqOo6hze3d
}else if(typeof ActiveXObject!="undefined"){
c9b%u(C+e3h H6I.x0 var xmlHttp_ver = false;
ii:F/MF.S7[)]I{0 var xmlHttp_vers = ["MSXML2.XmlHttp.5.0","MSXML2.XmlHttp.4.0","MSXML2.XmlHttp.3.0","MSXML2.XmlHttp","Microsoft.XmlHttp"];PHPChina 开源社区门户C y"Sf3CB)|
if(!xmlHttp_ver){PHPChina 开源社区门户!`rc_+[dZM7~:p
for(var i=0;i<xmlHttp_vers.length;i++){
n*h|1[1]m*C:{S+s0 try{PHPChina 开源社区门户5B/?4EWq!n K*X
new ActiveXObject(xmlHttp_vers[i]);
h&~\&k|x8K3B0 xmlHttp_ver = xmlHttp_vers[i];PHPChina 开源社区门户wI`,j7x)l
break;PHPChina 开源社区门户g'p ePoEL6U
}catch(oError){;}PHPChina 开源社区门户s:y:A/G R4A
}
:S!f P[U0RT0 }
i(|'Y\;l;]`*h(T'p0 if(xmlHttp_ver){
F7]p7R v6c'W0 return new ActiveXObject(xmlHttp_ver);PHPChina 开源社区门户+P8_5?\~3|
}else{PHPChina 开源社区门户$c f%yEIu.i a)M"Z
throw new Error("Could not create XML HTTP Request.");PHPChina 开源社区门户1{BL~Ws]+?-y5P
}PHPChina 开源社区门户%lAHb7Y| L!NZu
}else{PHPChina 开源社区门户ioJ ~!f;l1`nD$m/b
throw new Error("Your browser doesn't support an XML HTTP Request.");
e7tC)t$w0 }PHPChina 开源社区门户 R B*}6x,B oN`
}
SW$? ~r.^0PHPChina 开源社区门户Nc&@&ym'h
var xmlHttp;PHPChina 开源社区门户.S-H7bOi/\sL3kl
PHPChina 开源社区门户4Or j}R4R*p1qg
function sendPostRequest()
e}[Q2A/i0{
(Cgd~7Ku7qA:\0 xmlHttp = createRequest();PHPChina 开源社区门户#M9E#Tk,|N
var shownum=document.getElementById("shownum").value;// html页面中一个id为shownum的input表单PHPChina 开源社区门户c.A w9M"t'H
var url = "show.php";//要发送到的URLPHPChina 开源社区门户"UNsc.za+l
var queryString = "shownum" + "=" + shownum;
+r.E9wt K0 //向服务端发送请求PHPChina 开源社区门户K!x6{XC}
xmlHttp.open("post", url, true);//这里的第三个参数为true为异步方式处理PHPChina 开源社区门户&De0ep$Pwxi
xmlHttp.onreadystatechange = showData;//异步方式处理,当状态改变时会调用onreadystatechange属性指定的回调函数showDataPHPChina 开源社区门户Li,KN7?6Q:SjJ|
xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;");//这一句是用post方法发送的时候必须写的PHPChina 开源社区门户\A7NiU4lL4g T4d
xmlHttp.send(queryString);//发送你构建成的数据,如果为“get”方法时,这里可以写成xmlHttp.send(NULL);PHPChina 开源社区门户!wnWT#Ln`2n|
}PHPChina 开源社区门户;b$F9KQ\%q
function showData()
IUp#`P6w9r0{
&K'b Zk{/o,KS0 var msg=document.getElementById("status");PHPChina 开源社区门户$bT+EU/iC$W@K+I]~
//第4步
.WJpveV)NfC0 if(xmlHttp.readyState==4)PHPChina 开源社区门户vl c"^cZ+m8|
{
*Xn*K*{V{ Xu0 if(xmlHttp.status==200)PHPChina 开源社区门户+Bl(V.v?4u+r
{PHPChina 开源社区门户9T)wG4IYA1t
//只有当readyState为4并且status为200时,才表示符合要求PHPChina 开源社区门户:C&x0OI.ckp-K(h
//下面这一句话,就相当于上面说的第5步,处理返回的结果
'sp,AdxU5k0 msg.innerHTML = xmlHttp.responseText;
/l+D2zt _]0 }PHPChina 开源社区门户wts8i8xb
}
8D"x,S:qhv0 else
;\F'L%\u0 {PHPChina 开源社区门户[%f4L]l V
switch(xmlHttp.readyState)
F s&Mq a2OII*v0 {
hpcf6?.o)H0 case 0:
G%X*_3Rp7?.N_0 msg.innerHTML="未初始化...";
2G%RPi~+r:{0 break;
!XFYY0]TTu/X@0 case 1:PHPChina 开源社区门户9QT,]8D4f~+ske.D
msg.innerHTML="加载中...";PHPChina 开源社区门户^u [Qz'X
break;PHPChina 开源社区门户P `&t-jw Q?Os
case 2:PHPChina 开源社区门户_J S1[P4pG+R
msg.innerHTML="连接完成...";PHPChina 开源社区门户.`y/VIT)}.bb
break;
4{ _#MD2Zv1yp+Jj5J0 case 3:PHPChina 开源社区门户-T%m!C2y1a,w
msg.innerHTML="交换数据...";
Rb!f$r C X0 break;PHPChina 开源社区门户4RNDl/e RP6e P!N@
default:PHPChina 开源社区门户T^%^7N%CV
break;
0qp V#S E$t't(T6v0 }
t{ci#d%^ ~Yw-m0 }PHPChina 开源社区门户*M"w4^f!f*z#S
}PHPChina 开源社区门户!T5J-L*Dfy3PD"A
*Cm*C"\/d0</scrīpt>
,p{QH8Nm%[8m%~0</head>
!OKJ:w A3Eh0<body>PHPChina 开源社区门户8mq M#w"Y3Q
<div>要发送的数据:<input name="shownum" id="shownum" type="text"><input type="button" name="search" value="发送" ōnClick="sendPostRequest()"></div>PHPChina 开源社区门户 ub2h6E0S'@4L
<div id="status"></div>PHPChina 开源社区门户 A4n Aa8{ N/nG
</body>PHPChina 开源社区门户;w#~%I d2eP D7OI `
</html>
同一目录下要有一个show.php7{*C:xuCQ3fK%L N,\gv0<head>PHPChina 开源社区门户#Nj] ` E~ LXj
<title>PHPChina 开源社区门户N'Kw*@-zb,_ Y8R
ajax
~ K9Mfi p8_a0</title>PHPChina 开源社区门户%tk/O:r:P6S$g
<scrīpt language="javascrīpt">
#@7EXf kp TNbo0function createRequest(){PHPChina 开源社区门户VR%c*L"lM
if(typeof XMLHttpRequest!="undefined") {
MNb*X{5nm(q0 return new XMLHttpRequest();PHPChina 开源社区门户4F*yqOo6hze3d
}else if(typeof ActiveXObject!="undefined"){
c9b%u(C+e3h H6I.x0 var xmlHttp_ver = false;
ii:F/MF.S7[)]I{0 var xmlHttp_vers = ["MSXML2.XmlHttp.5.0","MSXML2.XmlHttp.4.0","MSXML2.XmlHttp.3.0","MSXML2.XmlHttp","Microsoft.XmlHttp"];PHPChina 开源社区门户C y"Sf3CB)|
if(!xmlHttp_ver){PHPChina 开源社区门户!`rc_+[dZM7~:p
for(var i=0;i<xmlHttp_vers.length;i++){
n*h|1[1]m*C:{S+s0 try{PHPChina 开源社区门户5B/?4EWq!n K*X
new ActiveXObject(xmlHttp_vers[i]);
h&~\&k|x8K3B0 xmlHttp_ver = xmlHttp_vers[i];PHPChina 开源社区门户wI`,j7x)l
break;PHPChina 开源社区门户g'p ePoEL6U
}catch(oError){;}PHPChina 开源社区门户s:y:A/G R4A
}
:S!f P[U0RT0 }
i(|'Y\;l;]`*h(T'p0 if(xmlHttp_ver){
F7]p7R v6c'W0 return new ActiveXObject(xmlHttp_ver);PHPChina 开源社区门户+P8_5?\~3|
}else{PHPChina 开源社区门户$c f%yEIu.i a)M"Z
throw new Error("Could not create XML HTTP Request.");PHPChina 开源社区门户1{BL~Ws]+?-y5P
}PHPChina 开源社区门户%lAHb7Y| L!NZu
}else{PHPChina 开源社区门户ioJ ~!f;l1`nD$m/b
throw new Error("Your browser doesn't support an XML HTTP Request.");
e7tC)t$w0 }PHPChina 开源社区门户 R B*}6x,B oN`
}
SW$? ~r.^0PHPChina 开源社区门户Nc&@&ym'h
var xmlHttp;PHPChina 开源社区门户.S-H7bOi/\sL3kl
PHPChina 开源社区门户4Or j}R4R*p1qg
function sendPostRequest()
e}[Q2A/i0{
(Cgd~7Ku7qA:\0 xmlHttp = createRequest();PHPChina 开源社区门户#M9E#Tk,|N
var shownum=document.getElementById("shownum").value;// html页面中一个id为shownum的input表单PHPChina 开源社区门户c.A w9M"t'H
var url = "show.php";//要发送到的URLPHPChina 开源社区门户"UNsc.za+l
var queryString = "shownum" + "=" + shownum;
+r.E9wt K0 //向服务端发送请求PHPChina 开源社区门户K!x6{XC}
xmlHttp.open("post", url, true);//这里的第三个参数为true为异步方式处理PHPChina 开源社区门户&De0ep$Pwxi
xmlHttp.onreadystatechange = showData;//异步方式处理,当状态改变时会调用onreadystatechange属性指定的回调函数showDataPHPChina 开源社区门户Li,KN7?6Q:SjJ|
xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;");//这一句是用post方法发送的时候必须写的PHPChina 开源社区门户\A7NiU4lL4g T4d
xmlHttp.send(queryString);//发送你构建成的数据,如果为“get”方法时,这里可以写成xmlHttp.send(NULL);PHPChina 开源社区门户!wnWT#Ln`2n|
}PHPChina 开源社区门户;b$F9KQ\%q
function showData()
IUp#`P6w9r0{
&K'b Zk{/o,KS0 var msg=document.getElementById("status");PHPChina 开源社区门户$bT+EU/iC$W@K+I]~
//第4步
.WJpveV)NfC0 if(xmlHttp.readyState==4)PHPChina 开源社区门户vl c"^cZ+m8|
{
*Xn*K*{V{ Xu0 if(xmlHttp.status==200)PHPChina 开源社区门户+Bl(V.v?4u+r
{PHPChina 开源社区门户9T)wG4IYA1t
//只有当readyState为4并且status为200时,才表示符合要求PHPChina 开源社区门户:C&x0OI.ckp-K(h
//下面这一句话,就相当于上面说的第5步,处理返回的结果
'sp,AdxU5k0 msg.innerHTML = xmlHttp.responseText;
/l+D2zt _]0 }PHPChina 开源社区门户wts8i8xb
}
8D"x,S:qhv0 else
;\F'L%\u0 {PHPChina 开源社区门户[%f4L]l V
switch(xmlHttp.readyState)
F s&Mq a2OII*v0 {
hpcf6?.o)H0 case 0:
G%X*_3Rp7?.N_0 msg.innerHTML="未初始化...";
2G%RPi~+r:{0 break;
!XFYY0]TTu/X@0 case 1:PHPChina 开源社区门户9QT,]8D4f~+ske.D
msg.innerHTML="加载中...";PHPChina 开源社区门户^u [Qz'X
break;PHPChina 开源社区门户P `&t-jw Q?Os
case 2:PHPChina 开源社区门户_J S1[P4pG+R
msg.innerHTML="连接完成...";PHPChina 开源社区门户.`y/VIT)}.bb
break;
4{ _#MD2Zv1yp+Jj5J0 case 3:PHPChina 开源社区门户-T%m!C2y1a,w
msg.innerHTML="交换数据...";
Rb!f$r C X0 break;PHPChina 开源社区门户4RNDl/e RP6e P!N@
default:PHPChina 开源社区门户T^%^7N%CV
break;
0qp V#S E$t't(T6v0 }
t{ci#d%^ ~Yw-m0 }PHPChina 开源社区门户*M"w4^f!f*z#S
}PHPChina 开源社区门户!T5J-L*Dfy3PD"A
*Cm*C"\/d0</scrīpt>
,p{QH8Nm%[8m%~0</head>
!OKJ:w A3Eh0<body>PHPChina 开源社区门户8mq M#w"Y3Q
<div>要发送的数据:<input name="shownum" id="shownum" type="text"><input type="button" name="search" value="发送" ōnClick="sendPostRequest()"></div>PHPChina 开源社区门户 ub2h6E0S'@4L
<div id="status"></div>PHPChina 开源社区门户 A4n Aa8{ N/nG
</body>PHPChina 开源社区门户;w#~%I d2eP D7OI `
</html>
~4sD*g l;e2O h0内容为
aj6Bp+a GdxZ0
;q_d+M@k)sQ0f UVK0
CODE:
<?phpPHPChina 开源社区门户 bw:M i.oLH
$shownum = $_POST["shownum"];PHPChina 开源社区门户tul }'B^&yc#s%K
echo $shownum;
UL7z*I4y(U0?>
$shownum = $_POST["shownum"];PHPChina 开源社区门户tul }'B^&yc#s%K
echo $shownum;
UL7z*I4y(U0?>
相关阅读:
- 用PHP写的身份证验证程序 (techliu, 2007-1-11)
- 初学ZF<1> (fengyun, 2007-1-11)
- 《图书借阅管理系统》开源 (soone, 2007-1-11)
- 《图书借阅管理系统》未用技术开源(冒泡技术) (soone, 2007-1-11)
- PHP中的串行化变量和序列化对象[转载] (soone, 2007-1-12)
- PHP六项基本的作用域规则: (fengyun, 2007-1-12)
- PHP (HOUXIAN2, 2007-1-13)
- php编程命名规则 (fengyun, 2007-1-13)
- php注意事项 (boy805, 2007-1-14)
- 架构和框架的区别 (fengyun, 2007-1-15)
TAG: PHP
