Проблема с автозаполнением jQuery - PullRequest
1 голос
/ 06 октября 2009

Я пытаюсь интегрировать плагин jQuery Autocomplete [1], но у меня не работает Вот мой код:

$('#input').autocomplete(function(term) {
        var searchUrl = urlBase + 'tagging/autocomplete/?term=' + term;  
    $.getJSON(searchUrl, function(jsonData) {
        test = jsonData;
            console.log(test);
        });
    });

Вывод из console.log выглядит следующим образом:

[ "EBE", "EBE1", "EBE2"] 

Для вывода я использую функцию php json_encode ()

echo json_encode ($words); 

Может кто-нибудь сказать мне, что не так в моем коде? С фиктивными данными со страницы плагина работает .... но не когда я пытаюсь получить данные через URI.

[1] http://docs.jquery.com/Plugins/Autocomplete

1 Ответ

3 голосов
/ 06 октября 2009

Вы ошибочно передаете функцию в качестве первого параметра в autocomplete. Подпись метода:

autocomplete( url or data, options );

и вы делаете:

autocomplete(function(term) {

Вместо этого передайте свой URL-адрес в качестве первого параметра и измените свой серверный код, чтобы прочитать автоматически добавленный параметр 'q' (который представляет term или строку в связанном элементе ввода):

$('#input').autocomplete('tagging/autocomplete/', {
     formatItem: function(data, i, n, value) {
         return "<font color='#3399CC'>" + value + "</font>";
     },
     formatResult: function(data,value) {
         return value;
     }
}).result(function(event, data, formatted) {
    console.log(data);
});

В руководстве написано:

Для удаленного автозаполнения укажите URL на ресурс, предоставляющий данные. Затем плагин запрашивает данные с параметр "q", содержащий текущий поиск значения.

Я никогда не пытался вернуть json автозаполнению (я уверен, что вы можете), но вышеизложенное предполагает, что данные, возвращаемые с сервера, разделяются новой строкой "\n" (автозаполнение преобразует их в LI). *

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