Всякий раз, когда я пытаюсь найти результат в моей панели поиска select2 ajax, я получаю следующее сообщение:
'The results could not be loaded'
HTML:
<select class = "js-data-example-ajax form-control" multiple = "multiple"></select>
Javascript:
$('select').each(function(idx, ele) {
$(ele).select2({
theme: 'bootstrap4',
placeholder: ele.getAttribute('placeholder'),
ajax: {
url: '/product/api/search',
dataType: 'json' },
type: 'GET',
});
});
Я думаю, что мои настройки Ajax неверны, не могли бы вы помочь?
также ваш скрипт ajax не завершен должным образом. Вам нужно переместить} из dataType в конце ajax
@daremachine Да, он возвращает результаты в формате JSON, не могли бы вы дать мне ответ с правильным синтаксисом?
посмотрите processResults в документе select2.org/источники данных/ajax





Ваш код должен выглядеть так. Метод GET не требуется.
$('select').each(function(idx, ele) {
$(ele).select2({
ajax: {
url: 'https://api.github.com/search/repositories',
dataType: 'json'
// Additional AJAX parameters
}
}
});
Также ваша проблема может заключаться в исходном формате json, потому что для select2 нужен собственный формат с results.
In order to accomplish this, Select2 expects a very specific data format. This format consists of a JSON object containing an array of objects keyed by the results key.
{
"results": [
{
"id": 1,
"text": "Option 1"
},
{
"id": 2,
"text": "Option 2"
}
}
Также вы можете использовать данные processResults или преобразование в определенном формате.
Спасибо, я получаю результат в строке поиска, но поисковый запрос по определенному имени не работает? Что может быть причиной этого?
что вы имеете в виду конкретное имя в запросе? у тебя нет запроса
Например, у меня есть 10 результатов в json, если я ищу идентификатор 2 с текстом «Вариант 2», он не фильтруется к варианту 2. Я все равно увижу весь список.
а ты ищешь в select2 или на стороне сервера? если вы хотите фильтровать на стороне сервера, вам нужно реализовать параметр q term. Я не могу вам помочь, потому что вы, вероятно, не знаете, что делаете. Прочтите документацию, как работать с ajax.
если вы вызовете /product/api/search в браузере, вы получите действительный json для select2, например идентификатор и текст?