echo $ data []来自数据库的特定行

时间:2018-04-22 21:29:41

标签: php html mysql ajax

我试图在mySQL数据库中输出与特定ID值相关联的名称,但它不起作用。加载的id行在get_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> 
&#13;
&#13;
&#13;

get_id.php文件:

&#13;
&#13;
<?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();
    
?>
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:0)

是的,必须打印数据是错误的 回显get_id.php中的已检索数据,在那里打印结果并像这样更改脚本

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

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