制作了一个AJAX脚本,该脚本应该使用我的PHP文件获取数据,但不起作用

制作了一个AJAX脚本,该脚本应该使用我的PHP文件获取数据,但不起作用,php,html,ajax,Php,Html,Ajax,该代码应该获取查询结果并根据文本框中写入的数字显示,我尝试了(onkeydown和onkeydup),但两者都不起作用,我不知道它为什么不起作用以及我的错误是什么 HTML代码: <script> function showRoom(rid) { xmlhttp = new XMLHttpRequest(); xmlhttp.open("GET", "getRoomAJAX.php?q="+rid, true);

该代码应该获取查询结果并根据文本框中写入的数字显示,我尝试了(onkeydown和onkeydup),但两者都不起作用,我不知道它为什么不起作用以及我的错误是什么

HTML代码:

<script>
        function showRoom(rid) {
            xmlhttp = new XMLHttpRequest();

            xmlhttp.open("GET", "getRoomAJAX.php?q="+rid, true);
            xmlhttp.send();

            xmlhttp.onreadystatechange = function () {
                if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
                    document.getElementById("txtHint").innerHTML = xmlhttp.responseText;
                }
            }
        }
    </script>

    <form> 
        <input type="text" name="rid" onkeydown="showRoom(this.value)">
    </form>

    <div id="txtHint">Room...</div>

功能陈列室(rid){
xmlhttp=新的XMLHttpRequest();
open(“GET”,“getRoomAJAX.php?q=“+rid,true”);
xmlhttp.send();
xmlhttp.onreadystatechange=函数(){
if(xmlhttp.readyState==4&&xmlhttp.status==200){
document.getElementById(“txtHint”).innerHTML=xmlhttp.responseText;
}
}
}
房间。。。
getRoomAJAX.php代码:

<?php
session_start();
ob_start();

$q = $_GET["q"];

$db = new Database();
$dbc = $db->getConnection();

if (!$dbc) {
    die('Could not connect: ' . mysql_error());
}

$query = "SELECT * FROM indvProj_room WHERE rid = '".$q."'";

$result = mysqli_query($dbc, $query);

//start creating the table HTML
if ($result) {
    echo "<table border='1' align='center' cellspacing = '2' cellpadding = '4' width='100%'>
          <tr>
          <th><b>Room ID</b></th>
          <th><b>Room Description</b></th>
          </tr>";
    while ($row = mysqli_fetch_array($result, MYSQLI_BOTH)) {
        echo "<tr>";;
        echo "<td>" . $_SESSION['adminRoomChoice'] = $row['rid'] . "</td>";
        echo "<td>" . $row['roomDesc'] . "</td>";
        echo "</tr>";
    }
    echo "</table>";
} else {
    echo '<p class="error">Sorry, cannot find the room, are you sure of the entered Room ID?</p>';
    echo '<p class = "error">' . mysqli_error($dbc) . '</p>';
}


?>

是否有人打电话给
展厅()
?放置
console.log(rid)
inside
showRoom()
,查看是否调用了该函数,以及是否正确传入了值

如果您可以确定它正在进入
showRoom()
,那么请按照代码向下进入PHP,查看它失败的地方。使用
return在PHP文件顶部回显一些示例文本就在它下面。这将告诉您错误是在XMLHttpRequest代码中还是在PHP文件的某个地方

通常,我不会传递任何带有onkeydown类型事件的变量/参数。通常,我调用这样一个不带参数的方法,然后根据元素的id检索值。有关这一点的详细信息,请参阅此答案:

您有一个错误。仅适用于旧API。请考虑切换错误模式。