У меня проблема с пользовательским интерфейсом jQuery.
Мне нужно autocomplete()
форма с данными из базы данных.
Мне нужно name
для отображения и ID
для отправки.
Итак, я не могу просто использовать массив строк с именем, мне нужно использовать массив объектов.
Моя проблема заключается в следующем: автозаполнение пользовательского интерфейса jQuery принимает только свойства 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)
}
});
});
Вы знаете, что я имею в виду? Да, если определено 'label' или 'value', я могу использовать другие свойства (например, 'id') для того, что я хочу.
Я просто хочу использовать пользовательские свойства, чтобы избежать этого цикла ... Для каждого ввода.
Спасибо и прошу прощения за мой английский (и мой навык JS.)