JSON для автозаполнения Jquery - PullRequest
2 голосов
/ 15 ноября 2010

У меня JSON-ответ из php-файла.

[{ "NAME": "Киев"}, { "NAME": "Киев метро "}, {" NAME ":" Киев-Днепро "}, {" NAME ":" Киев-Днепро "}, {" NAME ":" Киев-Донецк "}, {" NAME ":" Киев-Донецк» }

Как я могу использовать это для стандартного автозаполнения Jquery? Функция автозаполнения делает запрос, но кажется, что он не может разобрать ответ для этого json (простой массив работает нормально). Помогите мне, пожалуйста


Дерин, да вот и все. Работает отлично! Но сейчас я хочу немного его изменить. В ответ я получаю больше данных и хочу отобразить их рядом с основным вводом автозаполнения

var infoGISName = null;
 var infoGISType = null;
 var infoGISLocationID = null;
 var infoGISParentID = null;

$('#GISName').autocomplete({
      source: function(request, response) {
              $.getJSON("autocomplete.php", { term:
  request.term }, function(result) {
                  response($.map(result, function(item) {
                        infoGISName = item.NAME;
                        infoGISType = item.GIS_TYPE;
                        infoGISLocationID = item.LOCATION_ID;
                       infoGISParentID = item.PARENT_ID;
                      return item.NAME;
                  }));
              });
          },
      change: function(event, ui) {
           $('#infoGISName').html(infoGISName);
            $('#infoGISType').html(infoGISType);
          $('#infoGISLocationID').html(infoGISLocationID);
            $('#infoGISParentID').html(infoGISParentID);
      },
       minLength:3

      });
 });

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

1 Ответ

6 голосов
/ 15 ноября 2010

Вы можете использовать опцию formatItem:

$('#foo').autocomplete({ 
    url : '/foo', 
    formatItem: function(item, position, length) {
        return item.NAME;
    } 
});

Для автозаполнения jquery ui вот как вы можете достичь этого:

$('#foo').autocomplete({
    source: function(request, response) {
        $.getJSON('/foo.php', { q: request.term }, function(result) {
            response($.map(result, function(item) {
                return item.NAME;
            }));
        });
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...