php的ajax简单实例
当输入j后,会触发ajax效果,从后台获取相应的名字中带有j的数据,并展示在suggestions中。
代码实现如下:
实现ajax需要三个文件,一个是html的表单文件,一个是js的核心文件,一个是php的后台文件。
下面的是html文件,当键盘按下时触发showhint方法,在showhint方法中会有ajax的核心内容,实例化,获取地址,获取数据并展示等等。
<html>
<head>
<script src="clienthint.js"></script>
</head>
<body>
<form>
first name:
<input type="text" id="txt1"
onkeyup="showhint(this.value)">
</form>
<p>suggestions: <span id="txthint"></span></p>
</body>
</html>
下面是js的内容clienthint.js。
var xmlhttp
function showhint(str)
{
if (str.length==0)
{
document.getelementbyid("txthint").innerhtml=""
return
}
//获取xmlhttpobject对象,如果为空,提示浏览器不支持ajax
xmlhttp=getxmlhttpobject()
if (xmlhttp==null)
{
alert ("browser does not support http request")
return
}
//获取url
var url="gethint.php"
url=url+"?q="+str
url=url+"&sid="+math.random()
//回调函数,执行动作
xmlhttp.onreadystatechange=statechanged
//open
xmlhttp.open("get",url,true)
xmlhttp.send(null)
}
function statechanged()
{
if (xmlhttp.readystate==4 || xmlhttp.readystate=="complete")
{
//将获取的信息插入到txthint中
document.getelementbyid("txthint").innerhtml=xmlhttp.responsetext
}
}
//获取xml对象
function getxmlhttpobject()
{
var xmlhttp=null;
try
{
// firefox, opera 8.0+, safari
xmlhttp=new xmlhttprequest();
}
catch (e)
{
// internet explorer
try
{
xmlhttp=new activexobject("msxml2.xmlhttp");
}
catch (e)
{
xmlhttp=new activexobject("microsoft.xmlhttp");
}
}
return xmlhttp;
}
下面是php的内容。根据ajax对象传入的参数,获取相应的数据。
<?php
// fill up array with names
$a[]="anna";
$a[]="brittany";
$a[]="cinderella";
$a[]="diana";
$a[]="eva";
$a[]="fiona";
$a[]="gunda";
$a[]="hege";
$a[]="inga";
$a[]="johanna";
$a[]="jiqing";
$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";
//get the q parameter from url
$q=$_get["q"];
//lookup all hints from array if length of q>0
if (strlen($q) > 0)
{
$hint="";
for($i=0; $i<count($a); $i++)
{
if (strtolower($q)==strtolower(substr($a[$i],0,strlen($q))))
{
if ($hint=="")
{
$hint=$a[$i];
}
else
{
$hint=$hint." , ".$a[$i];
}
}
}
}
//set output to "no suggestion" if no hint were found
//or to the correct values
if ($hint == "")
{
$response="no suggestion";
}
else
{
$response=$hint;
}
//output the response
echo $response;
?>
上一篇: js如何去除html标签
下一篇: cdr开放路径怎么填充颜色?