2010-11-15 3 views
2

У меня есть ответ JSON из файла php.JSON для JQuery autocomplete

[{ "NAME": "Киев"}, { "NAME": "Киев метро"}, { "NAME": "Киев-Днепро"}, { "NAME": "Киев-Днепро «}, {« НАЗВАНИЕ »:« Киев-Донецк »}, {« НАЗВАНИЕ »:« Киев-Донецк »}

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


Derin, да это так. Работает отлично! Но теперь я хочу немного изменить его. Я получаю больше данных в ответ, и я хотел бы, чтобы отобразить его возле главного входа автозаполнения

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 записей

+0

Какой плагин ты используешь? Или это [автозаполнение jQuery UI Autocomplete] (http://bassistance.de/jquery-plugins/jquery-plugin-autocomplete/)? –

+0

Если это фактический ответ, то он все равно не сработает, потому что отсутствует конечная скобка и, следовательно, не является допустимым массивом. –

+0

Также вы можете показать нам немного больше кода, который вы используете с этим, чтобы мы могли видеть полную картину? –

ответ

6

Вы можете использовать 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; 
      })); 
     }); 
    } 
}); 
+0

Я пытаюсь использовать http://jqueryui.com/demos/autocomplete/, потому что я загружаю полный пакет JUI – Castro

+0

Вы рекомендуете мне использовать еще один? – Castro

+0

@Castro, см. Мое обновление для примера с автозаполнением jqueryui. –