php - 制作了一个 AJAX 脚本,该脚本应该使用 GET 来使用我的 PHP 文件获取数据,但无法正常工作
问题描述
该代码应该获取查询结果并根据文本框中写入的数字显示它,我尝试了(onkeydown 和 onkeyup)但都没有工作,我不知道为什么它不工作,我的错误是什么.
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>
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>';
}
?>
解决方案
是否showRoom()
会被调用?放入一个console.log(rid);
内部showRoom()
以查看它是否被调用以及该值是否被正确传递。
如果您可以确定它进入了showRoom()
.,然后按照代码向下并进入 PHP 以查看它失败的地方。在 PHP 文件的顶部及其return;
正下方回显一些示例文本。这将告诉您错误是在 XMLHttpRequest 代码中还是在 PHP 文件中的某个位置。
通常,我不会通过 onkeydown 类型的事件传递任何变量/参数。通常,我在没有参数的情况下调用这样的方法,然后根据元素的 id 检索值。有关详细信息,请参阅此答案:https ://stackoverflow.com/a/54040431/3103434
推荐阅读
- dependency-injection - Autofac 依赖注入 - 设置公共属性
- c# - 如何从 github 运行 ASP.NET Web api
- sweetalert - 如何在 js 变量中保存甜蜜的警报提示
- python - Python 3:如何将函数添加到库的 Python 类中?
- sql - 如何设计用于存储库存商店中项目的数据库?
- android - 使用自定义对话框类时如何修改文本并单击侦听器?
- java - 无法使用 Java 编辑 XSL 属性值
- amazon-web-services - 如何触发服务器的侦听器
- assembly - 当内核开发者想写汇编时,他们是写高层次的,然后用编译器转换,还是直接写汇编?
- django - 从 `views.py` 在 django 中动态创建模型