AJAX 用于创造动态性更强的应用程序。
AJAX ASP/PHP 实例下面的例子将为您演示当用户在输入框中键入字符时,网页如何与 web 服务器进行通信: 请在下面的输入框中键入字母(A - Z):
实例在输入框中尝试输入字母 a:
提示信息:
当用户在上面的输入框中键入字符时,会执行函数 "showHint()" 。该函数由 "onkeyup" 事件触发:
function showHint(str)
{
var xmlhttp;
if (str.length==0)
{
document.getElementById("txtHint").innerHTML="";
return;
}
if (window.XMLHttpRequest)
{
// IE7+, Firefox, Chrome, Opera, Safari 浏览器执行代码
xmlhttp=new XMLHttpRequest();
}
else
{
// IE6, IE5 浏览器执行代码
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();
}
源代码解析:
如果输入框为空 str.length==0,则该函数清空 txtHint 占位符的内容,并退出函数。
如果输入框不为空,showHint() 函数执行以下任务:
创建 XMLHttpRequest 对象 当服务器响应就绪时执行函数 把请求发送到服务器上的文件 请注意我们向 URL 添加了一个参数 q (带有输入框的内容) AJAX 服务器页面 - ASP 和 PHP由上面的 JavaScript 调用的服务器页面是 ASP 文件,名为 "gethint.asp"。
下面,我们创建了两个版本的服务器文件,一个用 ASP 编写,另一个用 PHP 编写。
ASP 文件"gethint.asp" 中的源代码会检查一个名字数组,然后向浏览器返回相应的名字:
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 编写,与上面的 ASP 代码作用是一样的。
0
if (strlen($q) > 0)
{
$hint="";
for($i=0; $i