Как мне заставить JQuery Autocomplete работать с Ajax и JSON? - PullRequest
2 голосов
/ 17 июня 2011

Я новичок в автозаполнении JQuery. Я пытаюсь заставить этот код работать правильно. Приведенный ниже код правильно выполняет опрос ajax каждый раз, когда кто-то вводит данные в поле ввода. Однако автозаполнение не выпадает.

$(document).ready(function() {
  $("#search").autocomplete({
    source: 'cityajax'
  });
});

Вот файл, который он успешно извлекает с сервера. Тип mime / content установлен на text / json.

['Overland Park','Hiawatha','Columbus','Lenexa','Pittsburg','Dodge City','Mission']

То же самое прекрасно работает, когда фактическим источником является встроенная переменная JSON в самом javascript. Эта проблема должна быть чем-то глупым простым, но я потратил последние полтора часа, пытаясь выяснить, что не так, и я нахожусь на контрольно-пропускном пункте. Я пропустил какой-то обязательный параметр?

РЕДАКТИРОВАТЬ: изменил мой "JSON" на этот действительный JSON, все еще та же проблема.

{"1": "Overland Park","1": "Hiawatha","1": "Columbus","1": "Lenexa","1": "Pittsburg","1": "Dodge City"}

РЕДАКТИРОВАТЬ: изменил мой "JSON" снова на это.

[{"1": "Overland Park"},{"2": "Hiawatha"},{"3": "Columbus"},{"4": "Lenexa"},{"5": "Pittsburg"},{"6": "Dodge City"}]

РЕДАКТИРОВАТЬ: изменил мой "JSON" на это, и все было хорошо.

[{"label": "Overland Park"}, {"label": "Hiawatha"}, {"label": "Columbus"}, {"label": "Lenexa"}, {"5": "Питтсбург"}, {"label": "Dodge City"}]

Ответы [ 2 ]

1 голос
/ 17 июня 2011

Простой пример для автозаполнения:

$( "#test" ).autocomplete({
            source: "search.php"
                        })

В search.php

<?php
    echo [{"label":"Overland Park"},{"label":"Hiawatha"}]
?>

Если вы хотите локальный поиск, не Ajax, чем используйте следующий код

var cityajax = ['Overland Park','Hiawatha','Columbus','Lenexa','Pittsburg','Dodge City','Mission']

$(document).ready(function() {
  $("#search").autocomplete({
    source: cityajax
  });
});
1 голос
/ 17 июня 2011

Метод, который вы использовали, определенно не сработает. Я спрашиваю, откуда вы знаете, что данные определенно попадают туда Вы видите это в XHR через Firebug? Как вы это называете, если не используете функцию удаленного источника плагина?

Как вы определили, расширение файла отсутствует. Таким образом, он устанавливает источник в строку с именем cityajax, что недопустимо. Если ваш источник данных - это переменная cityajax, вы можете поместить эту переменную туда без кавычек.

Jsonlint позволит вам проверить достоверность ваших данных.

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