首先很抱歉,如果这真的很难理解,但我解释起来很复杂。而且我对这个 Ajax 事情也很陌生。
假设我有 page1.php,其中有以下脚本:
function change(str) {
if (str=="") {
document.getElementById("servicetxt").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("servicetxt").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","change.php?a="+str,true);
xmlhttp.send();
}
在 change.php 上,我正在制作一个文本字段,因此当您在 page1.php 上调用 change 函数时它会出现。但是,如果我想在用户输入此文本字段时发出新请求(这样的建议响应:w3schools ajax)怎么办?我尝试在 change.php 中执行以下操作:
<script type="text/javascript">
function gethint(str) {
if (str=="") {
document.getElementById("hint").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("hint").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","gethint.php?a="+str,true);
xmlhttp.send();
}
</script>
<?
echo "<input type=\"text\" name=\"varenummer\" onkeyup=\"gethint(this.value)\">";
echo "<p>Suggestions: <span id=\"hint\"></span></p>";
?>
但这不起作用。可能没有一个快速简单的答案,如果是这样的话,请你指导我一篇好的文章/教程,它可以教我如何解决这个难题:)