AJAX ASP/PHP
ajax asp/php 實(shí)例
ajax 用于創(chuàng)造動(dòng)態(tài)性更強(qiáng)的應(yīng)用程序。
ajax asp/php 實(shí)例
下面的例子將為您演示當(dāng)用戶(hù)在輸入框中鍵入字符時(shí),網(wǎng)頁(yè)如何與 web 服務(wù)器進(jìn)行通信: 請(qǐng)?jiān)谙旅娴妮斎肟蛑墟I入字母(a - z):
function showhint(str)
{
var xmlhttp;
if (str.length==0)
{
document.getelementbyid("txthint").innerhtml="";
return;
}
if (window.xmlhttprequest)
{
// ie7+, firefox, chrome, opera, safari 瀏覽器執(zhí)行代碼
xmlhttp=new xmlhttprequest();
}
else
{
// ie6, ie5 瀏覽器執(zhí)行代碼
xmlhttp=new activexobject("microsoft.xmlhttp");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readystate==4 && xmlhttp.status==200)
{
document.getelementbyid("txthint").innerhtml=xmlhttp.responsetext;
}
}
xmlhttp.open("get","/try/ajax/gethint.php?q="+str,true);
xmlhttp.send();
}
實(shí)例
在輸入框中嘗試輸入字母 a:
輸入姓名:提示信息:
實(shí)例解析 - showhint() 函數(shù)
當(dāng)用戶(hù)在上面的輸入框中鍵入字符時(shí),會(huì)執(zhí)行函數(shù) "showhint()" 。該函數(shù)由 "onkeyup" 事件觸發(fā):
function showhint(str) { var xmlhttp;
if (str.length==0) {
document.getelementbyid("txthint").innerhtml="";
return;
} if (window.xmlhttprequest) { // ie7+, firefox, chrome, opera, safari 瀏覽器執(zhí)行代碼 xmlhttp=new xmlhttprequest();
} else { // ie6, ie5 瀏覽器執(zhí)行代碼 xmlhttp=new activexobject("microsoft.xmlhttp");
} xmlhttp.onreadystatechange=function() { if (xmlhttp.readystate==4 && xmlhttp.status==200) { document.getelementbyid("txthint").innerhtml=xmlhttp.responsetext;
} } xmlhttp.open("get","/try/ajax/gethint.php?q="+str,true);
xmlhttp.send();}
源代碼解析:
如果輸入框?yàn)榭?str.length==0,則該函數(shù)清空 txthint 占位符的內(nèi)容,并退出函數(shù)。
如果輸入框不為空,showhint() 函數(shù)執(zhí)行以下任務(wù):
- 創(chuàng)建 xmlhttprequest 對(duì)象
- 當(dāng)服務(wù)器響應(yīng)就緒時(shí)執(zhí)行函數(shù)
- 把請(qǐng)求發(fā)送到服務(wù)器上的文件
- 請(qǐng)注意我們向 url 添加了一個(gè)參數(shù) q (帶有輸入框的內(nèi)容)
ajax 服務(wù)器頁(yè)面 - asp 和 php
以上實(shí)例 javascript 調(diào)用的服務(wù)器頁(yè)面是 php 文件,名為 gethint.php。
下面,我們創(chuàng)建了兩個(gè)版本的服務(wù)器文件,一個(gè)用 asp 編寫(xiě),另一個(gè)用 php 編寫(xiě)。
asp 文件
"gethint.asp" 中的源代碼會(huì)檢查一個(gè)名字?jǐn)?shù)組,然后向?yàn)g覽器返回相應(yīng)的名字:
<% response.expires=-1 dim a(30) 'fill up array with names a(1)="anna" a(2)="brittany" a(3)="cinderella" a(4)="diana" a(5)="eva" a(6)="fiona" a(7)="gunda" a(8)="hege" a(9)="inga" a(10)="johanna" a(11)="kitty" a(12)="linda" a(13)="nina" a(14)="ophelia" a(15)="petunia" a(16)="amanda" a(17)="raquel" a(18)="cindy" a(19)="doris" a(20)="eve" a(21)="evita" a(22)="sunniva" a(23)="tove" a(24)="unni" a(25)="violet" a(26)="liza" a(27)="elizabeth" a(28)="ellen" a(29)="wenche" a(30)="vicky" 'get the q parameter from url q=ucase(request.querystring("q")) 'lookup all hints from array if length of q>0 if len(q)>0 then hint="" for i=1 to 30 if q=ucase(mid(a(i),1,len(q))) then if hint="" then hint=a(i) else hint=hint & " , " & a(i) end if end if next end if 'output "no suggestion" if no hint were found 'or output the correct values if hint="" then response.write("no suggestion") else response.write(hint) end if %>
php 文件
下面的代碼用 php 編寫(xiě),與上面的 asp 代碼作用是一樣的。
0 if (strlen($q) > 0) { $hint=""; for($i=0; $i