简体   繁体   中英

Select2 AJAX with JSON

I have been trying to populate my input with select2 using the JSON provided. Here's the JSON:

{
"airports": 
[
    {
        "id": "1",
        "code": "AMQ",
        "city": "Ambon",
        "country": "Indonesia"
    },
    {
        "id": "2",
        "code": "BJW",
        "city": "Bajawa",
        "country": "Indonesia"
    }
]
}

And the html code:

<input class="" type='hidden' value="192" data-init-text='Departing City' name='input' id='depart-airport' style="width: 300px"/>

And the js code:

    $(document).ready(function() {
  $('#depart-airport').select2({
    minimumInputLength: 1,
    ajax: {
      url: "http://localhost:4000/api/airports.json",
      dataType: 'json',
      results: function (data) {
        return { results: data};
      }
    }
  });
});

There's no error in console, but whether I try to input them it's always saying that "searching failed" or there's not even anything. The data from json never showed. Do you have anything to fix this around? Thanks's before :)

You have a minor error in your jQuery:

 $(document).ready(function() {
    $('#depart-airport').select2({
        minimumInputLength: 1,
        ajax: {
            url: "http://localhost:4000/api/airports.json",
            dataType: 'json',
            results: function (data) {
                // You had { results: data }, but your actual information is in data.airports
                return { results: data.airports }; 
            }
        }
    });
});

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM