当前位置: 首页 > 知识库问答 >
问题:

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

胡沈义
2023-03-14

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

超文本标记语言代码:

<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>';
}


?>

共有1个答案

公羊绪
2023-03-14

showRoom()是否被调用过?放一个控制台。原木(rid)insideshowRoom(),查看是否调用了该函数,以及是否正确传入了值。

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

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

 类似资料:
  • 问题内容: 我很确定答案是否定的,但是我想我还是会问。 如果我的站点引用了名为“ whatever.js”的脚本,是否可以从该脚本中获取“ whatever.js”?喜欢: 麻烦多于依赖检查所值得的,但是这真是麻烦。 问题答案: var scripts = document.getElementsByTagName(‘script’); var lastScript = scripts[scrip

  • 问题内容: 我是PHP新手。我安装了XAMPP并运行了Apache。我在XAMPP的htdocs中创建了helloworld.php,并在浏览器中显示了PHP。我的问题是,为什么我的HTML文件中的PHP脚本不显示在浏览器中?香港专业教育学院从未安装过PHP。我也应该安装吗?它会与XAMPP冲突吗?我的代码如下。任何帮助将不胜感激。提前致谢: 问题答案: XAMPP已经包含PHP,但是除非您以该脚

  • 我创建了一个带有mojs的简单javascript应用程序,一个动画库,并希望将其部署到heroku。首先,我尝试“heroku create”等并将原始应用程序部署到heroku - 该应用程序可以访问,但脚本不起作用。其次,我尝试通过插入脚本引导标记来更改我按照 heroku 网站上的 Node.js 教程制作的应用程序 将我制作的脚本复制到此应用程序的文件夹中 然后运行“npm 安装 moj

  • 问题内容: 这里的另一个新手..我正在尝试修复以下代码,以防止sql注入,并学习编写php和sql的新方法。 您的建议将不胜感激。 我修改了这个 为此,我没有得到相同的结果。 问题答案: 您不能将mysql与mysqli或PDO混合使用。您需要查看错误日志,因为这不可能实现-您应该看到大量致命错误。

  • 问题内容: 我正在使用以下脚本来启动文件下载: 当我直接打开页面时,它工作正常,但事实是,我需要从另一个页面通过Ajax调用此脚本。当我这样做时,下载就不会开始。脚本的其余部分执行了预期的工作。 我以为问题不在于无法以这种方式使用标头函数,但是肯定有一种方法可以使这项工作正常进行吗? 如果有任何帮助,这是Ajax函数: 形式如下: 问题答案: 您不能使用AJAX下载文件。这没有道理。您可以发送AJ

  • 问题内容: 我正在使用以下脚本来启动文件下载: 当我直接打开页面时,它工作正常,但事实是,我需要从另一个页面通过Ajax调用此脚本。当我这样做时,下载就不会开始。脚本的其余部分执行了预期的工作。 我认为问题不是这种方式可以使用头函数,但是肯定有一种方法可以使这项工作正常进行吗? 如果有帮助,这是Ajax函数: 形式如下: 问题答案: 您不能使用AJAX下载文件。这没有道理。您可以发送AJAX请求并