用于Jquery自动完成的JSON

时间:2010-11-15 13:28:49

标签: jquery json jquery-ui

我是来自php文件的JSON响应。

  

[{ “NAME”: “基辅”},{ “NAME”:“基辅   地铁 “},{” NAME “:” 基辅Dnepro “},{” NAME “:” 基辅Dnepro “},{” 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 个答案:

答案 0 :(得分:6)

您可以使用formatItem选项:

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

对于jquery ui autocomplete,你可以在这里实现这个目标:

$('#foo').autocomplete({
    source: function(request, response) {
        $.getJSON('/foo.php', { q: request.term }, function(result) {
            response($.map(result, function(item) {
                return item.NAME;
            }));
        });
    }
});