我正在尝试在ajax(jQuery)的帮助下完成自动完成任务。让我们来看看脚本
这里是html =>
<input type="text" name="user_key" id="user_key">
这里是同一个文件中的javascript =&gt;
<script type="text/javascript">
$(function(){
$("#user_key").autocomplete({
source: function(request,response){
var suggestions = [];
$.ajax({
url: "/ajax/autocomplete.php",
type: "POST",
data: {user_key:$(this).val()},
success: function(result){
$.each(result,function(i,val){
suggestions.push(val.name);
});
},
dataType: "json"
});
response(suggestions);
}
});
});
</script>
这是来自autocomplete.php文件=&gt;
的php脚本if (!$connection->connect_errno){
if ($connection->set_charset("utf8")){
if ($r = $connection->query("SELECT name FROM users WHERE name LIKE '" . $_POST['user_key'] . "%'")){
for ($x=0,$numrows = $r->num_rows;$x<$numrows;$x++){
if ($row = $r->fetch_assoc()){
$array[$x] = array("name",$row['name']);
}
}
$r->free();
}
}
}
echo json_encode($array);
PS。它不起作用。请帮助,我在过去的两天里一直在努力完成这项任务,但无法让它发挥作用。在此先感谢:)
答案 0 :(得分:0)
$array[$x] = array("name",$row['name']);
这使得数据库中的名称和值都作为array()的元素
将autocomplete.php的代码更改为
if (!$connection->connect_errno){
if ($connection->set_charset("utf8")){
if ($r = $connection->query("SELECT name FROM users WHERE name LIKE '" . $_POST['user_key'] . "%'")){
for ($x=0,$numrows = $r->num_rows;$x<$numrows;$x++){
if ($row = $r->fetch_assoc()){
$array[$x] = array("name"=>$row['name']);
}
}
$r->free();
}
}
}
echo json_encode($array);
这将使name成为从数据库中获取的值的键
这会对你有帮助。
答案 1 :(得分:0)
您需要再次查看自动填充文档,但您可以在此处找到答案:jquery auto-suggestion example doesn't work