我正在学习Ajax,我正在尝试编写一个简单的代码。但不幸的是它不起作用。有人能告诉我有什么问题吗?感谢
使用ajax脚本编写代码:
function show(str,url,div) {
var x;
if(str.length==0) {
document.getElementById("meno").innerHTML="";
return;
}
if(window.XMLHttpRequest) {
x= new XMLHttpRequest();
}
else {
x= new ActiveXObject("Microsoft.XMLHTTP");
}
x.onreadystatechange=function() {
if(x.readyState==4 && x.status==200) {
document.getElementById("meno").innerHTML=x.responseText;
}
x.open("POST",url,true);
x.setRequestHeader("Content-type","application/x-www-form-urlencoded");
x.send("string=str");
}
}
<form action="registracka.php" method="post">
<table cellspacing=10px>
<tr>
<td>Name</td><td><input type="text" name="meno" onkeyup="show(this.value,ajax.php,meno)">
</td><td><div id="meno"></div></td></tr>
</table>
</form>
脚本ajax.php只需打印出消息OK ,,,但在输入信件后它没有任何效果。
答案 0 :(得分:0)
您需要将函数引用为文字字符串的函数:
<td>Name</td><td><input type="text" name="meno" onkeyup="show(this.value, 'ajax.php', 'meno')">
您是否因为试图访问未定义的变量ajax
而在Javascript控制台中出错?
发送参数时,需要连接变量:
x.send("string=" + encodeURIComponent(str));
另外,你的大括号错了,所以你不是首先发送AJAX请求。您有代码在回调函数中发送请求。
function show(str,url,div) {
var x;
if(str.length==0) {
document.getElementById(div).innerHTML="";
return;
}
if(window.XMLHttpRequest) {
x= new XMLHttpRequest();
}
else {
x= new ActiveXObject("Microsoft.XMLHTTP");
}
x.onreadystatechange=function() {
if(x.readyState==4 && x.status==200) {
document.getElementById(div).innerHTML=x.responseText;
}
}
x.open("POST",url,true);
x.setRequestHeader("Content-type","application/x-www-form-urlencoded");
x.send("string=" + encodeURIComponent(str));
}