Получить значение в автозаполнении jquery

#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