AJAX PHP示例
AJAX用于创建更多交互式应用程序。
以下示例演示了当用户在输入字段中键入字符时,网页如何与Web服务器通信:
<!DOCTYPE html>
<html>
<meta charset="utf-8">
<title>ajax</title>
<body>
<h3> XMLHttpRequest 对象 </h3>
<h4>开始在下面的input字段中键入名称:</h4>
<p>建议: <span id="txtHint"></span></p>
<p>First name: <input type="text" id="txt1" onkeyup="showHint(this.value)"></p>
<script>
function showHint(str) {
var xhttp;
if (str.length == 0) {
document.getElementById("txtHint").innerHTML = "";
return;
}
xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
document.getElementById("txtHint").innerHTML = this.responseText;
}
};
xhttp.open("GET", "/jc_script/gethint.php?q="+str, true);
xhttp.send();
}
</script>
</body>
</html>
体验一下交换
在上面的示例中,当用户在输入字段中键入字符时,showHint()执行被调用的函数。该函数由onkeyup事件触发。
代码说明:首先,检查input字段是否为空(str.length == 0)。如果是,请清除txtHint占位符的内容并退出该函数。但是,如果输入字段不为空,请执行以下操作:
创建XMLHttpRequest对象
创建服务器响应准备好时要执行的函数
将请求发送到服务器上的PHP文件(gethint.php)
请注意,“gethint.php?q=“+ str添加了q参数
str变量保存input字段的内容
PHP文件 - “gethint.php”
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 = $_REQUEST["q"];
$hint = "";
// 如果$q不等于"",则从数组中查找所有提示
if ($q !== "") {
$q = strtolower($q);
$len=strlen($q);
foreach($a as $name) {
if (stristr($q, substr($name, 0, $len))) {
if ($hint === "") {
$hint = $name;
} else {
$hint .= ", $name";
}
}
}
}
// 如果未找到提示或输出正确值,则输出“无建议”
echo $hint === "" ? "无建议" : $hint;
更详细的AJAX文章教程
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。