JQuery Autocomplete: как настроить, что отправить на сервер? - PullRequest
1 голос
/ 20 сентября 2011

В настоящее время после ввода данных сервер возвращает мне что-то вроде:

[{"id":"1", "value":"My first character"},{"id":"2", "value":"My second Character"}]

И когда я выбираю «Мой первый персонаж» и добавляю форму, она отправляет:

array(1) { ["members"]=> string(18) "My first character" }

Но я бы лучше отправил удостоверение личности . Как сказать .autocomplete отправлять идентификатор вместо метки поля? ( JS код )

Это должно быть просто, но я скучаю по нему.

Спасибо

Ответы [ 3 ]

1 голос
/ 20 сентября 2011

Одним из возможных решений является добавление в форму скрытого поля, в котором будет храниться выбранный в данный момент идентификатор.

<input type="hidden" name="memberID" value="" />

Когда элемент выбран с автозаполнением, вы можете использовать событие select , чтобы заполнить это скрытое поле выбранным идентификатором.

Срабатывает при выборе элемента из меню;ui.item относится к выбранному элементу

1 голос
/ 20 сентября 2011

На самом деле, если вы используете текстовый ввод, вы всегда будете отправлять отображаемое значение.Что вы можете сделать, это скопировать идентификатор в скрытый элемент, а затем перехватить эту сторону сервера.Вы можете сделать:

            select: function( event, ui ) {
                    var terms = split( this.value );
                    // remove the current input
                    terms.pop();
                    // add the selected item
                    terms.push( ui.item.value );
                    // add placeholder to get the comma-and-space at the end
                    terms.push( "" );
                    this.value = terms.join( ", " );
                    //get the id
                    var id = ui.term.id;
                    //copy it to another hidden element
                    $('#yourhiddeninput').val(id);
                    return false;
            }
0 голосов
/ 20 сентября 2011

В данные автозаполнения добавьте поле label, а затем измените поле value на id.

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