- <html>
- <head>
- <Meta http-equiv="content-type" content="text/html;charset=utf-8">
- <script type="text/javascript">
- function showHint(str)
- {
- var xmlhttp;
- if (str.length==0)
- {
- document.getElementById("txtHint").innerHTML="";
- return;
- }
- if (window.XMLHttpRequest)
- {// code for IE7+,Firefox,Chrome,Opera,Safari
- xmlhttp=new XMLHttpRequest();
- }
- else
- {// code for 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","ajax.PHP?q="+str,true);
- xmlhttp.send();
- }
- </script>
- </head>
- <body>
- <h3>请在下面的输入框中键入字母(A - Z):</h3>
- <form action="">
- 姓氏:<input type="text" id="txt1" onkeyup="showHint(this.value)" />
- </form>
- <p>建议:<span id="txtHint"></span></p>
- </body>
- </html>
如果输入框为空 (str.length==0),则该函数清空 txtHint 占位符的内容,并退出函数。
如果输入框不为空,showHint() 函数执行以下任务:
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];
- }
- }
- }
- }
- // 如果未找到提示,则把输出设置为 "no suggestion"
- // 否则设置为正确的值
- if ($hint == "")
- {
- $response="no suggestion";
- }
- else
- {
- $response=$hint;
- }
- //输出响应
- echo $response;
- ?>
效果