PHP_AJAX实例1
来源:互联网 发布:交换机端口有ip地址吗 编辑:程序博客网 时间:2024/06/05 10:44
HTML表单:
<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>
JavaScript:
var xmlHttp;function showHint(str){ if (str.length == 0) { document.getElementById("txtHint").innerHTML = ""; return; } xmlHttp = GetXmlHttpObject(); if (xmlHttp == null) { alert ("Browser does not support HTTP Request"); return; } var url = "gethint.php"; url = url + "?q=" +str; url = url + "&sid=" + Math.random(); xmlHttp.onreadystatechange = stateChanged; xmlHttp.open("GET", url, true); xmlHttp.send(null);}function stateChanged(){ if (xmlHttp.readyState == 4 || xmlHttp.readyState == "complete") { document.getElementById("txtHint").innerHTML = xmlHttp.responseText }}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;}
showHint() 函数
每当在输入域中输入一个字符,该函数就会被执行一次。
如果文本框中有内容 (str.length > 0),该函数这样执行:
- 定义要发送到服务器的 URL(文件名)
- 把带有输入域内容的参数 (q) 添加到这个 URL
- 添加一个随机数,以防服务器使用缓存文件
- 调用 GetXmlHttpObject 函数来创建 XMLHTTP 对象,并在事件被触发时告知该对象执行名为 stateChanged 的函数
- 用给定的 URL 来打开打开这个 XMLHTTP 对象
- 向服务器发送 HTTP 请求
如果输入域为空,则函数简单地清空 txtHint 占位符的内容。
stateChanged() 函数
每当 XMLHTTP 对象的状态发生改变,则执行该函数。
在状态变成 4 (或 "complete")时,用响应文本填充 txtHint 占位符 txtHint 的内容。
GetXmlHttpObject() 函数
AJAX 应用程序只能运行在完整支持 XML 的 web 浏览器中。
上面的代码调用了名为 GetXmlHttpObject() 的函数。
该函数的作用是解决为不同浏览器创建不同 XMLHTTP 对象的问题。
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";//get the parameter from url$q = $_GET['q'];//lookup all hints from array if length of q > 0if (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//of to the correct valuesif ($hint == "") $response = "no suggetion";else $response = $hint; //output the responseecho $response;?>
0 0
- PHP_AJAX实例1
- PHP_AJAX实例2
- PHP_AJAX实例3
- PHP_AJAX实例4
- 16.PHP_Ajax模拟服务器登录验证
- 实例1
- 实例1
- XML实例解析1
- VSS使用实例1
- 线程:实例1
- EJB2.1开发实例
- ACE实例编程1
- ajax实例1
- Junit测试实例1
- jspsmartupload 详细实例(1)
- PowerDesigner 应用实例1
- 设计模式实例1
- JQuery入门实例1
- 邻接表的建立和广度优先遍历
- Windows Server 2003发生 Userenv 错误事件ID1058、1030
- codeforces-379A. New Year Candles
- 深度围观block:第二集
- 从《古惑仔》里看流氓的数据陷阱
- PHP_AJAX实例1
- Unity随心记
- 春运抢火车票攻略汇总(持续更新中)
- OGNL
- 深度围观block:第三集
- centos6.2 安装QT
- C++指向类成员的指针的使用(详细介绍)
- Block剧终:Objective-C中的闭包性和匿名函数
- 实现网页图片的异步加载