Я пытаюсь использовать select2 извлечения данных с помощью AJAX из PHP-конца. Я не мог понять документацию столько, сколько хотел бы. Я думаю, что я, вероятно, пропустил некоторые принятые вещи как должное.
Я начал так:
HTML
<select id="select_proj" style="width:10em">
<option value="" selected="selected">Search</option>
</select>
JS
$('select').select2();
$("#select_proj").select2({
ajax : {
url : '../app/select_prj.php',
dataType : 'json',
delay : 250,
data : function (term, page) {
return {
select_proj: term, // search term
page: 10
};
},
processResults: function (data, page) {
return {
results: data.items
};
},
cache: true
},
escapeMarkup : function (markup) { return markup; }, // let our custom formatter work
minimumInputLength : 1,
});
В PHP
JSON-объект возвращается из PHP
echo json_encode($result_data);
и данные выглядят как
[{
"PROJ_ID" : 10039,
"0" : 10039
},{
"PROJ_ID" : 10042,
"0":10042
}]
Однако в поле выбора ничего не происходит, кроме сообщения «Результаты не найдены».
Что я упускаю?
Ваш ответ должен выглядеть так:
[
{ id: 0, text: 'enhancement' },
{ id: 1, text: 'bug' },
{ id: 2, text: 'duplicate' },
{ id: 3, text: 'invalid' },
{ id: 4, text: 'wontfix' }
]
и вы должны удалить «.items» из «data.items», потому что в вашем ответе нет ключевых «элементов».
Других решений пока нет …