我有两个php文件,test.php和test2.php
在'test.php'我有一个表单,我想获得名称并用ajax和php回显它这里是我的代码,它有什么问题?
test.php的
<html>
<head>
<script>
function showHint(str)
{
if (str.length==0)
{
document.getElementById("txtHint").innerHTML="";
return;
}
var xmlhttp=new XMLHttpRequest();
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","test2.php?q="+str,true);
xmlhttp.send();
}
</script>
</head>
<body>
<p><b>Start typing a name in the input field below:</b></p>
<form method="get">
First name: <input type="text" name="fname">
<input type="submit" value="click me" onclick="showHint(fname)">
</form>
<p>Suggestions: <span id="txtHint"></span></p>
</body>
</html>
和 test2.php 是
<?php
$q = intval($_GET['q']);
echo $q;
?>
答案 0 :(得分:0)
表单中的按钮是提交输入,将导致重新加载页面。将return false
添加到您的onclick
方法以防止这种情况发生:
<input type="submit" value="click me" onclick="showHint(fname); return false">
此外,您的showHint
函数需要一个字符串,但您正在传递HTML输入。您可以通过在函数顶部添加以下内容来获取文本值:
if (typeof str !== 'string' && typeof str.value !== 'undefined') {
str = str.value;
}