我从 MySQL 查询中生成了一些数据,我想做两件事。数据是名称和 ID 的数组。
首先,我想将名称部分用于 jQuery 自动完成功能,以便您可以在字段中选择名称。其次,我想在自动完成中触发选择,将所选项目的 ID 放入隐藏字段中。
这是我的jQuery:
$("#contact").autocomplete(
source: function(request, response){
$.ajax({
url: "ajax/grabdata.php?",
type: "GET",
data: request,
success: function (data) {
response($.map(data, function (el) {
return {
label: el.item.name,
value: el.item.id
};
}));
}
});
},
width: 260,
matchContains: true,
selectFirst: false,
select: function(event, ui){
$('#contact').val(ui.label);
$('#id').val(ui.value);
}
});
这是我在 PHP (grabdata.php) 中抓取数据的方式:
$sql = "SELECT DISTINCT contacts.id, contacts.firstname, contacts.lastname FROMcontacts WHERE (firstname LIKE '%$q%' OR lastname LIKE '%$q%')";
$rsd = mysql_query($sql);
while($rs = mysql_fetch_array($rsd)) {
$kdata[] = array(
"name" => $rs['firstname'].' '.$rs['lastname']."\n",
"id" => $rs['ID']."\n",
);
$dataset[] = $kdata;
}
我可以获取数据,但无法将其解析为我想要的数据。名称应该可以在自动完成字段中选择,ID 应该根据选择的名称填写。