如何在select 2 jquery中显示列表数据并查找数据

how to display list data in select 2 jquery and find data

我有一个数据数组已经做了JSON然后想在select中显示出来,然后根据输入

找到数据

这是我的控制器

$response = $this->GET(config('constant.url').'school-list');
return json_encode($response);

这是我的blade视图

<div class="form-group">
  <label for="inputGrade">Select School</label>
  <select class="cari form-control" style="width:525px;" name="cari">
      <option value="disable"></option>
  </select>
</div>

$('.cari').select2({
        placeholder: 'Cari...',
        ajax: {
        url: '/select/school',
        dataType: 'json',
        delay: 250,
        data:function(param){
            return{
                school_name:param.term
            }
        },
        processResults: function (data) {
            return {
                results: $.map(data, function (item) {
                    return {
                        school_name: item.school_name,
                        school_id: item.school_id
                    }
                })
            };
        },
        cache: true
        }
    })

这是我的 json

{
    "STATUS": 200,
    "MESSAGE": "SUCCESS",
    "DATA": [
        {
            "school_id": 11,
            "school_name": "ACS Jakarta"
        },
        {
            "school_id": 13,
            "school_name": "Al Azhar 20"
        },
        {
            "school_id": 14,
            "school_name": "Al Azhar 23"
        },
        {
            "school_id": 15,
            "school_name": "Bangun Insan Mandiri"
        },
        {
            "school_id": 16,
            "school_name": "Bina Bangsa School Kebon Jeruk"
        },
     ]
}

我试了好几次,但是我编码的数据列表不存在

processResults 函数中将 school_name 更改为 text,将 school_id 更改为 id

processResults: function (data) {
  var response = JSON.parse(data);
    return {
        results: $.map(response.DATA, function (item) {
            return {
                text: item.school_name,
                id: item.school_id
            }
        })
    };
},

查看更详细answer对你有帮助