使用 json 填充 Select2

Populate Select2 with json

我的函数是:

jQuery.post("example.php",{}, function(data){$("#select2").html('').select2({data: data});});

和returnjson: {"results":[{"id":"aasd23423d3d","text":"dfasie"},{"id":"asdf2fsdf","text":"velder"}"}]}

但是select2是把字母和单词分开填写的,如图

Image Select2

jQuery.post 的最后一个参数是 dataType。尝试将其设置为 'json',数据将在内部为您解析为 object。

目前看来 jQuery 假设它只是来自服务器的文本

如果您控制 php 代码,您还应该为 application/json

设置内容类型 header
jQuery.post("example.php", 
   {}, 
   function(data) {
      $("#select2").html('').select2({
         data: data
      });
   },
   'json'
);

尝试:

<select id="select2"></select>
$('#select2').select2({
  ajax: {
    type: 'POST',
    url: 'example.php',
    data: {},
    dataType: 'json'
    processResults: function (data) {
      return {
        results: data.results
      };
    }
  }
});

要了解更多信息,请访问 Select2 with Ajax