最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - JSON for Jquery autocomplete - Stack Overflow

programmeradmin1浏览0评论

I've JSON response from php file.

[{
  "NAME": "Kiev"
}, {
  "NAME": "Kiev metro"
}, {
  "NAME": "Kiev-Dnepro"
}, {
  "NAME": "Kiev-Dnepro"
}, {
  "NAME": "Kiev-Donetsk"
}, {
  "NAME": "Kiev-Donetsk"
}]

How can I use that for standard Jquery autoplete? Autoplete function do request but it seems it cant parse response for this json (simple array works fine). Help me please


Derin, yes that's it. Works fine! But now I want to modify it a little. I getting more data in response and I'd like to display it near of main autoplete input

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

$('#GISName').autoplete({
source: function(request, response) {
  $.getJSON("autoplete.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

});
});

So how to change data in fields when I changed text in autoplete input? Now I see just last values from JSON recordset

I've JSON response from php file.

[{
  "NAME": "Kiev"
}, {
  "NAME": "Kiev metro"
}, {
  "NAME": "Kiev-Dnepro"
}, {
  "NAME": "Kiev-Dnepro"
}, {
  "NAME": "Kiev-Donetsk"
}, {
  "NAME": "Kiev-Donetsk"
}]

How can I use that for standard Jquery autoplete? Autoplete function do request but it seems it cant parse response for this json (simple array works fine). Help me please


Derin, yes that's it. Works fine! But now I want to modify it a little. I getting more data in response and I'd like to display it near of main autoplete input

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

$('#GISName').autoplete({
source: function(request, response) {
  $.getJSON("autoplete.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

});
});

So how to change data in fields when I changed text in autoplete input? Now I see just last values from JSON recordset

Share Improve this question edited Jan 13, 2020 at 13:40 Mickael Lherminez 6951 gold badge11 silver badges30 bronze badges asked Nov 15, 2010 at 13:28 CastroCastro 871 gold badge2 silver badges9 bronze badges 3
  • Which plugin are you using? Or is this jQuery UI Autoplete? – user7675 Commented Nov 15, 2010 at 13:30
  • If that is the actual response then it won't work anyway because it is missing the final bracket and thus isn't a valid array. – Coin_op Commented Nov 15, 2010 at 13:32
  • Also can you show us a little bit more of the code you are using with this so we can see the full picture? – Nathan Hess Commented Nov 15, 2010 at 13:32
Add a ment  | 

1 Answer 1

Reset to default 6

You could use the formatItem option:

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

For the jquery ui autoplete here's how you could achieve this:

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

评论列表(0)

  1. 暂无评论