Как сделать значение в автозаполнении JQuery UI? - PullRequest
0 голосов
/ 04 октября 2018

В моей таблице user у меня есть id_user и name.Мой автозаполненный поиск только по имени.Мне нужно id_user для ввода в базу данных.Обычно мы можем написать id_user в качестве атрибута значения во входном теге.Это код:

Контроллер:

function get_autocomplete(){
        if (isset($_GET['term'])) {
            $result = $this->User_model->search($_GET['term']);
            if (count($result) > 0) {
            foreach ($result as $row)
                $arr_result[] = $row->name;
                echo json_encode($arr_result);
            }
        }
    }

Модель:

function search($name){
        $this->db->like('name', $name , 'both');
        $this->db->order_by('name', 'ASC');
        $this->db->limit(10);
        return $this->db->get('user')->result();
    }

Вид:

<input type="text" id="name" placeholder="Name" name="id_user">
<script type="text/javascript">
        $(document).ready(function(){
            $( "#name" ).autocomplete({
              source: "<?php echo site_url('admin/user/get_autocomplete/?');?>"
            });
        });
    </script>

1 Ответ

0 голосов
/ 04 октября 2018

Вы можете заполнить опции автозаполнения парами Метка / Значение.Таким образом, опции показывают метку (например, username), и когда пользователь выбирает одну опцию, значение (например, id_user) записывается в поле ввода (= значение и поэтому отображается в поле ввода)

Так что ваш php-код должен возвращать массив JSON с парами метка / значение

foreach ($result as $row)
    $arr_result[] = array('label' => $row->name, 'value' => $row->id_user);
}
echo json_encode($arr_result);

Пожалуйста, посмотрите на мой пример jsfiddle - он показывает автозаполнение со статическими данными https://jsfiddle.net/jf7ynxwz/3/

Если вам не нравится, что user_id записывается на вход (видимый), это немного сложнее.Просмотрите документацию и, возможно, установите значение в качестве атрибута data-html для ввода после выбора: -)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...