Проблема с jquery autocomplete

KODEAK

Полезный
Регистрация
11 Апр 2009
Сообщения
172
Реакции
16
Для автозаполнения решил использовать плагин jquery

код
Код:
$("#search").autocomplete({
            source: function (request, response) {
                jQuery.get("http://*****/users/api", {
                    q: request.term
                }, function (data) {
                          response(data);
                });
            },

ответ сервера
Код:
echo json_encode(array('t', 'c', 'b'));

но не работает ничего =( Подскажите пожалуйста где ошибка ?
 
Смотрите что выводится в консоли + посмотрите что выводится по адресу Для просмотра ссылки Войди или Зарегистрируйся , возможно в ответ попадает что-то лишнее, и распарсить неполучается.
 
TypeError: ["t","c","b"] is not a valid argument for 'in' (evaluating 'b-1 in a') - в консоли
 
возможно не может определить тип данных корректно, попробуй указать dataType

Код:
$("#search").autocomplete({
            source: function (request, response) {
                jQuery.get("http://*****/users/api", {
                    q: request.term
                }, function (data) {
                          response(data);
                }, "json");
 
Нужно читать доку перед началом использования, тогда таких вопросов возникать не будет.
Вот пример json которы хавает автокомплит.
Код:
[
    {
        "id": "mysql-in-a-nutshell",
        "value": "MySQL in a Nutshell",
        "label": "<span class=\"hl_results\">MySQL</span> in a Nutshell"
    },
    {
        "id": "how-to-use-php-improved-mysqli-extension-and-why-you-should",
        "value": "How to Use PHP Improved MySQLi extension (and Why You Should)",
        "label": "How to Use PHP Improved <span class=\"hl_results\">MySQL</span>i extension (and Why You Should)"
    },
    {
        "id": "is-it-time-to-remove-mysql-in-favor-of-mariadb-in-production-servers",
        "value": "Is it time to Remove MySQL in favor of MariaDB in Production Servers?",
        "label": "Is it time to Remove <span class=\"hl_results\">MySQL</span> in favor of MariaDB in Production Servers?"
    }
]

Это стандартный пареср, его можно изменить, пере-определив методы

Код:
$....autocomplete(url,{
      ...<other params>...
       parse: function(data){
            if(!data){
                console.log('no results') 
            }
        }
}

На самом деле пере-определить нужно еще методы рендер, хотя в вашем случае думаю можно обойтись стандартным.
 
Назад
Сверху