我对jQuery UI有问题。
我需要使用数据库中的数据来autocomplete()
。
我需要name
进行显示,ID
进行提交。
所以,我不能简单地使用带有名称的字符串数组,我需要使用对象数组。
我的问题是:jQuery UI自动完成功能仅接受label
或value
属性来执行自动完成。
所以,我必须这样做:
PHP
:
public function autocomp(Connection $db)
{
$term = $_GET['term'];
$req = $db->prepare("SELECT name, id FROM product LIKE '%".$term."%'");
$req->execute();
// Because jQuery-UI's autocomplete() accept only array with 'label' for index of value,
// We are forced to parse the data before send it to JSON...
$array = [];
$i = 0;
while($data = $req->fetch())
{
$i++;
$array[$i]['id'] = $data['id'];
$array[$i]['label'] = $data['name'];
}
$response = new Response(json_encode($array));
return $response;
}
jQuery autocomplete()
:
$(function () {
$('#autotry').autocomplete({
source: '/autocomp',
select: function (event, ui) {
$('#hidden').val( ui.item.id)
}
});
});
你知道我的意思吗?是的,如果定义了“标签”或“值”,我可以使用其他属性(例如“ id”)来执行我想要的操作。
我只想使用自定义属性,以避免出现循环...对于每个输入。 谢谢,请原谅我的英语(和我的JS技能。)