我只是探索ajax来学习它。
我尝试下面的JavaScript测试代码。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Ajax Demo</title>
<meta name="" content="">
<script type="text/javascript">
function aa(){
var xmlhttp;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.open("GET","getprod.php",false);
xmlhttp.send();
document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
}
</script>
</head>
<body>
<form>
<input type="text" name ="txta" onchange="aa();"> </input>
<br>
<div id ='myDiv' style="width: 400px;height: 300px; overflow-y: auto;border: #e87517 1px solid">
<?php
$mysqli=new mysqli('localhost', 'root', 'password', 'ajax');
if ($mysqli->connect_errno) {
die("Connect failed". $mysqli->connect_error);
}
$mysqli->set_charset("utf8");
if ($result = $mysqli->query("select id, name from test;")){
while ($row = $result->fetch_assoc()) {
echo $row['id'], " - " , $row['name'], "<br>";
}//while
}//if
$result->close();
$mysqli->close();
?>
</div>
</form>
</body>
</html>还有"getprod.php“的几行。
<?php
echo "123";
?>当我更改textbox中的值时,Ajax会按需要返回字符串"123",并将其放在div中,但几秒钟后,div再次填充来自MySQL的结果,这是不需要的。
1)我的代码有什么问题?(目标是:当我更改textbox中的值时,只能在div容器中永久显示ajax - "123“返回的字符串。) 2)文本框更改事件在失去焦点或在键盘上按ENTER时发生。如何在没有此操作的情况下触发更改事件?
提前谢谢。
发布于 2014-10-17 15:20:09
尝试将onchange事件更改为onkeypress或oninput。
发布于 2014-10-17 15:02:44
oninput事件- oninput.asp。https://stackoverflow.com/questions/26426881
复制相似问题