我试图在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;
get_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();
?>
&#13;
答案 0 :(得分:0)
是的,必须打印数据是错误的 回显get_id.php中的已检索数据,在那里打印结果并像这样更改脚本
if (this.readyState == 4 && this.status == 200) {
document.getElementById("name-display").innerHTML = this.responseText;
}
};
现在一切都应该正常但不要忘记在php文件中使用一段时间来回显结果