2009-10-06 4 views
1

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

$('#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

ответ

3

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

autocomplete(url or data, options); 

и вы делаете:

autocomplete(function(term) { 

Вместо этого, передать свой адрес в качестве первого параметра, и мода вашего кода сервера для чтения автоматически добавляются «Q» параметр (который представляет собой термин или строку в связанном входном элементе):

$('#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 к autocompleter (я уверен, что вы можете), но выше, предполагает, что данные, возвращаемые с сервера разделяются символом новой строки "\n" (автозаполнение преобразует эти в LIS).

+0

большой! работает для mit с параметром q ....;) – cupakob