Преобразование данных ответа select2 не работает - PullRequest
0 голосов
/ 02 мая 2018

Я использую select2 (v4) и использую удаленные данные. Ответ правильный, но функция processResults не вызывается, а select2 ничего не отображает.

 $('#country').select2({
     placeholder: 'Select a country',
     minimumInputLength: 3,
     ajax: {
         url: 'https://battuta.medunes.net/api/country/search/?key=xx',
         dataType: 'json',                        
         processResults: function(data) {
            var results = [];
            $.each(data, function (index, country) {
                 results.push({
                     id: country.code,
                     text: country.name
                 });
             });

             return {
                results: results
             };                            
         },                        
         data: function(params) {
            var query = {
               country: params.term
            }

            return query;
        }
     },
     width: 'resolve',
  }); 

Пример ответа на запрос ajax:

[
  {"name": "Indonesia", "code": "Id"}, 
  {"name": "French Polynesia", "code": "pf"}
]

1 Ответ

0 голосов
/ 06 июня 2018

Привет ниже выбранный код для него

$('#country').select2({
     placeholder: 'Select a country',
     minimumInputLength: 3,
     ajax: {
         url: function(param){return 'https://battuta.medunes.net/api/country/search/'},
         dataType: 'jsonp' ,
         data: function (params) {


      var query = {
       country: params.term,
      // callback :"?",
       key:"00000000000000000000000000000000" //put your key here 
      }
//this is important to make sure no extra params are added becuase the api rejects anything that has wrong params
      // Query parameters will be ?city=[term]&callback=?,key=
      return query;
    },
          processResults: function(data) {
            var results = []; 
            $.each(data, function (index, country) {
                 results.push({
                     id: country.code,
                     text: country.name
                 });
             });

             return {
              "results":results
             };                            
         },

     },

     width: 'resolve',
  }); 

и это моя скрипка, показывающая поиск рабочей страны https://jsfiddle.net/shyamjoshi/jbfrnqLd/37/

...