首页 > 解决方案 > 如何在select 2 jquery中显示列表数据并查找数据

问题描述

我有一个数据数组,已经做成了json,然后我想在select中显示出来,然后我可以根据输入找到数据

这是我的控制器

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

这是我的刀片视图

<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"
        },
     ]
}

我已经尝试了几次,但我编码的数据列表不存在

标签: jqueryajaxlaraveljquery-select2

解决方案


在函数中更改school_nametotextschool_idto 。idprocessResults

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

检查更详细的答案 将对您有所帮助。


推荐阅读