#javascript #jquery-select2
#javascript #jquery-select2
Вопрос:
Я использую select2
библиотеку для отправки ajax-запроса:
Я получаю данные обратно, когда что-то ищу, но по какой-то причине результаты не отображаются в раскрывающемся списке.
$('.js-example-basic-single').select2({
ajax: {
url:"/search/search",
type:"POST",
data: function (params) {
// Query parameters will be ?search=[term]amp;type=public
var query = {
search: params.term,
type: 'public'
}
return query;
},
processResults: function (data) {
// Transforms the top-level key of the response object from 'items' to 'results'
data = JSON.parse(data)
console.log(data)
return {
results: data.studentNumber
};
}
// Additional AJAX parameters go here; see the end of this chapter for the full code of this example
}
});
Это данные, которые я вижу в своей консоли:
[
{
studentNumber :"12324"
},
{
studentNumber :"12324"
},
]
Это то, что делает documentataion:
$('#mySelect2').select2({
ajax: {
url: '/example/api',
processResults: function (data) {
// Transforms the top-level key of the response object from 'items' to 'results'
return {
results: data.items
};
}
}
});
Комментарии:
1. Если это вывод журнала консоли, то вы получаете,
array
но пытаетесь проанализироватьdata
какobject
. Попробуйте вернутьdata
сам.2. Он прав, вместо этого
return { data.studentNumber }
попробуйте обычныйreturn data
. @KunalKukreja возможно, создайте это как ответ на этот вопрос, чтобы вы могли получить за это очки.
Ответ №1:
data
Вы получили после преобразования array
. Вызов data. studentNumber
дал бы неопределенный результат, поскольку данные не являются объектом.
Просто верните сами данные, поскольку results
в любом случае ожидается, что это будет array
.
Простыми словами, измените это:
return {
results: data. studentNumber
};
Для
return {
results: data
};