Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 实时搜索没有任何作用_Php_Ajax_Search_Mysqli_Xmlhttprequest - Fatal编程技术网

Php 实时搜索没有任何作用

Php 实时搜索没有任何作用,php,ajax,search,mysqli,xmlhttprequest,Php,Ajax,Search,Mysqli,Xmlhttprequest,我在youtube.com上找到了一个使用ajax的基本php live搜索。请参见 该视频使用不同的语言,但我会管理您从youtube.com上看到的所有代码,但不同的是数据库名称和表名,然而,当我运行时,不会显示从mysql数据库带来的任何内容,即使按下任何键,也不会显示任何内容,甚至不会显示错误。和你在youtube上看到的相比,你能看到我在这段代码中是否遗漏了什么吗 search.php <body> <form name"form1" action="" method

我在youtube.com上找到了一个使用ajax的基本php live搜索。请参见

该视频使用不同的语言,但我会管理您从youtube.com上看到的所有代码,但不同的是数据库名称和表名,然而,当我运行时,不会显示从mysql数据库带来的任何内容,即使按下任何键,也不会显示任何内容,甚至不会显示错误。和你在youtube上看到的相比,你能看到我在这段代码中是否遗漏了什么吗

search.php

<body>
<form name"form1" action="" method="post">
Enter name<input type="text" name="t1" onKeyUp="aa();"/><br />
<div id="dl"></div>
</form>

<script type="text/javascript">
function aa()
{
xmlhttp=new XMLHttpRequest();
xmlhttp.open("GET","sea.php?nm="+document.forml.t1.value,false);    
xmlhttp.send(null);
document.getElementById("dl").innerHTML=xmlhttp.responseText;

}

</script>

</body>
</html>

输入名称
函数aa() { xmlhttp=新的XMLHttpRequest(); open(“GET”、“sea.php?nm=“+document.forml.t1.value,false”); xmlhttp.send(空); document.getElementById(“dl”).innerHTML=xmlhttp.responseText; }
sea.php

<?php 

$nm=$_GET("nm");

$mysqli = new mysqli("localhost", "root", "password", "table");

// Check connection
if (mysqli_connect_errno($mysqli))
  {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
  }


if ($result = $mysqli->query("select * FROM product WHERE product_name like('$nm%')")) 
echo"<table>";

    {
echo "<tr>";
echo "<td>";?><img src="../<?php echo $row["screenshot"];?>" height="100" width="100" <?php echo "</td>" ; 
echo "<td>"; echo $row["product_name"]; echo "</td>";
echo "<tr>";    

}
echo "</table>";
?>

您需要在
onreadystatechange
上获得响应,请执行以下操作:

xmlhttp=new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
    if (xmlhttp.readyState == 4) { //4:: request finished and response is ready
        document.getElementById("dl").innerHTML=xmlhttp.responseText;
    }
}
xmlhttp.open("GET","sea.php?nm="+document.forml.t1.value);    
xmlhttp.send(null);
@andy true(xmlhttp.open()的最后一个参数)使请求异步,false使其同步,它应该可以工作,检查更新的答案。顺便说一句,默认情况下它为true,所以您可以将其从xmlhttp.open()中删除,如更新的答案中所示