AJAXASP/PHP请求实例
AJAX用于创造动态性更强的应用程序。
AJAXASP/PHP实例
下面的例子将为您演示当用户在输入框中键入字符时,网页如何与web服务器进行通信:
请在下面的输入框中键入字母(A-Z):
姓氏:
建议:
实例解释-showHint()函数
当用户在上面的输入框中键入字符时,会执行函数"showHint()"。该函数由"onkeyup"事件触发:
functionshowHint(str)
{
varxmlhttp;
if(str.length==0)
{
document.getElementById("txtHint").innerHTML="";
return;
}
if(window.XMLHttpRequest)
{//codeforIE7+,Firefox,Chrome,Opera,Safari
xmlhttp=newXMLHttpRequest();
}
else
{//codeforIE6,IE5
xmlhttp=newActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if(xmlhttp.readyState==4&&xmlhttp.status==200)
{
document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","gethint.asp?q="+str,true);
xmlhttp.send();
}
源代码解释:
如果输入框为空(str.length==0),则该函数清空txtHint占位符的内容,并退出函数。
如果输入框不为空,showHint()函数执行以下任务:
・创建XMLHttpRequest对象
・当服务器响应就绪时执行函数
・把请求发送到服务器上的文件
由上面的JavaScript调用的服务器页面是ASP文件,名为"gethint.asp"。
下面,我们创建了两个版本的服务器文件,一个用ASP编写,另一个用PHP编写。
ASP文件
"gethint.asp"中的源代码会检查一个名字数组,然后向浏览器返回相应的名字:
<%
response.expires=-1
dima(30)
'用名字来填充数组
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"
'获得来自URL的q参数
q=ucase(request.querystring("q"))
'如果q大于0,则查找数组中的所有提示
iflen(q)>0then
hint=""
fori=1to30
ifq=ucase(mid(a(i),1,len(q)))then
ifhint=""then
hint=a(i)
else
hint=hint&","&a(i)
endif
endif
next
endif
'否则输出正确的值
ifhint=""then
response.write("nosuggestion")
else
response.write(hint)
endif
%>
注释:如需在PHP中运行这个例子,请将url变量的值(Javascript代码中)由"gethint.asp"改为"gethint.PHP"。
<?PHP
//用名字来填充数组
$a[]="Anna";
$a[]="Brittany";
$a[]="Cinderella";
$a[]="Diana";
$a[]="Eva";
$a[]="Fiona";
$a[]="Gunda";
$a[]="Hege";
$a[]="Inga";
$a[]="Johanna";
$a[]="Kitty";
$a[]="Linda";
$a[]="Nina";
$a[]="Ophelia";
$a[]="Petunia";
$a[]="Amanda";
$a[]="Raquel";
$a[]="Cindy";
$a[]="Doris";
$a[]="Eve";
$a[]="Evita";
$a[]="Sunniva";
$a[]="Tove";
$a[]="Unni";
$a[]="Violet";
$a[]="Liza";
$a[]="Elizabeth";
$a[]="Ellen";
$a[]="Wenche";
$a[]="Vicky";
//获得来自URL的q参数
$q=$_GET["q"];
//如果q大于0,则查找数组中的所有提示
if(strlen($q)>0)
{
$hint="";
for($i=0;$i<count($a);$i++)
{
if(strtolower($q)==strtolower(substr($a[$i],strlen($q))))
{
if($hint=="")
{
$hint=$a[$i];
}
else
{
$hint=$hint.",".$a[$i];
}
}
}
}
//如果未找到提示,则把输出设置为"nosuggestion"
//否则设置为正确的值
if($hint=="")
{
$response="nosuggestion";
}
else
{
$response=$hint;
}
//输出响应
echo$response;
?>
来自:http://www.w3school.com.cn
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。