我正在使用這個jQuery插件:JQuery Autocomplete。問題我收到了json數據,但沒有出現在自動完成列表中。 的JQuery
代碼:JQuery自動完成與遠程JSON數據源不工作
$("#student-id").autocomplete({
source: function(request, response) {
$.ajax({
url: "ajax/ajax_admin.php?auto_student=" + $("#student-id").val(),
dataType:"json",
data: {
featureClass: "P",
style: "full",
maxRows: 12,
name_startsWith: request.term
},
success: function(data) {
response($.map(data.students, function(item) {
return {
label: item.id +" , "+ item.name,
value: item.id
}
}));
}
});
},
minLength: 2,
open: function() {
$(this).removeClass("ui-corner-all").addClass("ui-corner-top");
},
close: function() {
$(this).removeClass("ui-corner-top").addClass("ui-corner-all");
}
});
的PHP Script
是:
public function load_ajax_student_list($val)
{
$val = "%".$val."%";
$stmt = $this->conn->prepare("select * from student where studentAiubId like :value limit 0,5");
$stmt->bindValue(':value', $val);
$stmt->execute();
if($stmt->rowCount() < 1)
echo "";
else
{
$result = $stmt->fetchAll();
$output = array();
foreach($result as $row)
{
if($row['mname']=="")
$name = $row['fname']." ".$row['lname'];
else
$name = $row['fname']." ".$row['mname']." ".$row['lname'];
$data["name"] = $name;
$data["id"] = $row['studentAiubId'];
$output["students"][] = $data;
}
echo json_encode($output);
}
}
如果呼叫是這樣的:ajax/ajax_admin.php?auto_student=10
從PHP script
所產生的數據是:
{
"students": [
{"name":"Moh Mamun Sardar","id":"10-15987-1"},
{"name":"Rehan Ahmed","id":"10-12451-2"},
{"name":"Abid Hassan","id":"10-15412-1"},
{"name":"Abir Islam","id":"10-11245-1"}
]
}
,但沒有示出自動完成。我做錯了什麼?
item.value必須是item.name或item.id。沒有字段叫做「返回json的值」 –
我剛剛使用之前我發佈了這個。對不起這是我的錯。無論如何編輯 –
。我也在使用它。沒有爲我工作。現在突然它正在工作。 :) –