#jquery #jquery-autocomplete
#jquery #jquery-автозаполнение
Вопрос:
Вот мой код
код jquery
$("input#shopName").autocomplete({
source: "getShop.php",
minLength: 2
});
Значение JSON возвращается из PHP, как показано ниже
if(isset($_GET["term"])){
$query=$_GET["term"];
$result = $dataset->get_custom_record("SELECT * FROM mc_shop WHERE shop_title like '%" . $query . "%' ORDER BY id");
}
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
$row_array['id'] = $row['id'];
$row_array['value'] =$row['shop_title'];
array_push($return_arr,$row_array);
}
echo json_encode($return_arr);
автозаполнение работает нормально, но при выборе значения из автозаполнения мне нужно поместить соответствующее значение «id» в одну скрытую переменную, я не знаю, как это сделать>
Ответ №1:
$("input#shopName").autocomplete({
source: "getShop.php",
minLength: 2,
select: function(event, ui) {
$("#theHidden").val(ui.item.id)
}
});
Смотрите http://jqueryui.com/demos/autocomplete/#event-select
Комментарии:
1. Я получаю все значение в запросе select, но в цикле while я использую только идентификатор и значение, предположим, мне нужно использовать другое значение для других отображений. Как с этим справиться? например, у меня есть идентификатор, имя и описание при выборе, мне нужно отобразить описание также в другом div.
2. @Elankeeran —
$("#otherDiv").html(ui.item.description);
3. Я не знаю, было ли это изменено недавно, но мне пришлось
return false;
остановить распространение события и предотвратить перезапись значения текстового поля.
Ответ №2:
Используйте следующее, чтобы получить выбранное значение onClick
$( "#searchText" ).bind( "autocompleteselect", function(event, ui) {
console.log(ui['item']['value']);
});
Комментарии:
1. Не могли бы вы предоставить немного больше контекста вокруг вашего ответа? Например, почему это работает, или некоторая информация о том, что это делает?
Ответ №3:
Для меня это работает фантастически:
$(ui)[0].item.label
$(ui)[0].item.value