【发布时间】:2025-12-11 07:45:02
【问题描述】:
我在列表看起来空白的自动完成中遇到了这个问题(只是边框没有内容),
这是我的代码:
我收到的数据:
<?php
require 'cnx/cnx.php';
$stmt = $pdo->prepare('select * from auteurs where nom like :keyword');
$stmt->bindValue('keyword', '%' . $_GET['term'] . '%');
$stmt->execute();
$result = array();
while ($aut = $stmt->fetch(PDO::FETCH_OBJ)) {
array_push($result, (object) [
'id_aut' => $aut->id_aut,
'nom' => $aut->nom,
'siecle' => $aut->siecle
]);
}
echo json_encode($result);
我得到的结果是这样编码的:
[
{
"id_aut":1,
"nom":"Shannon Ashley",
"siecle":17
},
{
"id_aut":2,
"nom":"Nathaniel Middleton",
"siecle":17
},
{
"id_aut":3,
"nom":"Amber Nixon",
"siecle":21
}
]
HTML 代码
<!DOCTYPE html>
<html lang="en">
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/themes/smoothness/jquery-ui.css">
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js"></script>
<script>
$(function() {
$("#auteur_inp").autocomplete({
minLength: 0,
source: "data.php",
select: function(event, ui) {
$("#auteur_inp").val(ui.item.nom);
$("#auteur_hid").val(ui.item.id_aut);
}
});
});
</script>
</head>
<body>
<form method="post">
<input type="text" name="auteur_inp" id="auteur_inp" />
<input type="hidden" name="auteur_hid" id="auteur_inp" />
<input type="submit" name="submit" value="Ajouter">
</form>
</body>
</html>
但由于某种原因,自动完成列表不会出现(
Image for the result i get)
但是,当我将数据推送到 $result 的方式更改为 array_push($result, $aut->nom) 时,它工作正常,但我无法以这种方式访问 id!
【问题讨论】:
标签: javascript php jquery html ajax