Как отобразить список данных в выберите 2 JQuery и найти данные - PullRequest
2 голосов
/ 11 декабря 2019

У меня есть массив данных, который был сделан 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"
        },
     ]
}

Я пробовал это несколько раз, но список данных, которые я закодировал, отсутствует

1 Ответ

0 голосов
/ 11 декабря 2019

Измените school_name на text и school_id на id в функции processResults.

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

проверьте более подробно ответ поможет вам.

...