JQuery Автозаполнение с JSON и использованием параметров - PullRequest
2 голосов
/ 04 марта 2011

Я пытаюсь сделать поле ввода автозаполнения. Каждый раз, когда пользователь вводит букву в этом поле, значение поля отправляется на сервер, а сервер отвечает словами, которые совпадают.

var acOptions = {
             source:function (request, response) {
                 $.ajax({
                     url: "index.php?option=com_fmw&view=keywords_api&controller=keywords_api&format=raw", 
                     type: "GET", dataType: "json",
                     data: { expr: request.term},
                     success: function (data) {
                         response($.map(data, function (item) {
                             return item.value;
                         }))
                     }
                 })
                 }, 
     minChars: 1,
     dataType: 'json'
};

$( "#search_box_input" ).autocomplete(acOptions);

Это пример данных с сервера:

[{"value":"Greater"},{"value":"great"},{"value":"greatly"},{"value":"Greater-Axe"}]

Предыдущий код делает правильный запрос к серверу (и сервер отвечает правильно), но он ничего не отображает в текстовом поле.

Я попытался выполнить автозаполнение без явного объекта ajax, но затем не смог отправить текущее значение поля (параметр "expr" запроса) на сервер:

var acOptions = {
        source: "index.php?option=com_fmw&view=keywords_api&controller=keywords_api&format=raw&expr=",
        minChars: 1,
        dataType: 'json'
};
$( "#search_box_input" ).autocomplete(acOptions);

Спасибо за вашу помощь!

1 Ответ

0 голосов
/ 04 марта 2011

Вы можете использовать jQuery для получения значения поля, чтобы добавить его в строку параметра URL.

var acOptions = {
        source: "index.php?option=com_fmw&view=keywords_api&controller=keywords_api&format=raw&expr=" + $('#ID_OF_YOUR_TEXTBOX').val(),
        minChars: 1,
        dataType: 'json'
};
$( "#search_box_input" ).autocomplete(acOptions);
...