echo$data[]用于数据库中的特定行

w8biq8rn  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(331)

我试图在mysql数据库中输出与特定id值相关联的名称,但它不起作用。加载的id行在get\u id.php文件中定义。我是遗漏了什么还是代码中有什么地方出错了?
以下是ajax的html部分:

<html>

<head>

<script>
function showHint(id) {
    if (id.value == 0) {
        document.getElementById("name-display").innerHTML = "";
        return;
    } else {
        var xmlhttp = new XMLHttpRequest();
        xmlhttp.onreadystatechange = function() {
            if (this.readyState == 4 && this.status == 200) {
                document.getElementById("name-display").innerHTML = <?php echo $data['name'];?>
            }
        };
        xmlhttp.open("GET", "get_id.php?id=" + id, true);
        xmlhttp.send();
    }
}
</script>

</head>

<body>

<p><b>Enter ID here</b></p>
<form>
ID: <input type="text" onkeyup="showHint(this.value)">
</form>
<p>Name: <span id="name-display"></span></p>
</body>
</html>

获取\u id.php文件:

<?php
    require 'database.php';

        $id = $_REQUEST['id'];

        $pdo = Database::connect();
        $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        $sql = "SELECT * FROM pokemons where id = ?";
        $q = $pdo->prepare($sql);
        $q->execute(array($id));
        $data = $q->fetch(PDO::FETCH_ASSOC);
        Database::disconnect();

?>
enyaitl3

enyaitl31#

是的,数据的打印是错误的,您必须在get\u id.php中回显检索到的数据,在那里打印结果,并像这样更改脚本

if (this.readyState == 4 && this.status == 200) {
            document.getElementById("name-display").innerHTML = this.responseText;
        }
    };

现在一切正常,但是不要忘记在php文件中使用一段时间来回显结果

相关问题