Я новичок в веб-разработке и узнаю, как Select2 взаимодействует с бэкендом данных в Django, следуя https://select2.org/data-sources/ajax
В http://localhost:8000/get_lvl0
, я успешно загрузил данные.
[{"name": "OK"}, {"name": "WA"}, {"name": "VA"}, {"name": "DE"}, {"name": "RI"}, {"name": "IN"}, {"name": "PA"}, {"name": "IL"}, {"name": "TN"}, {"name": "MD"}]
Но значения не загружаются на странице.
<select class="testing" multiple="multiple" name="lv0_es" style="width:30%">
</select>
<script type="text/javascript">
$(document).ready(function() {
$('.testing').select2({
placeholder: 'Select an Lv0'
});
});
$(document).ready(function () {
$('#lv0_es').select2({
ajax: {
url: '/get_lvl0',
dataType: "json",
type: "GET",
data: function (params) {
var queryParameters = {
q: params.name
}
return queryParameters;
},
processResults: function (data) {
return {
results: data
};
}
}
});
});
<script>
В консоли нет ошибок.
Ниже я также попытался сначала получить данные загрузки ajax, а затем получить select2, но получил ошибку Uncaught SyntaxError: Unexpected token ':'
, из-за которой я не уверен, почему она запускается.
$(document).ready(function () {
ajax: {
url: '/get_lvl0',
dataType: 'json', //this line triggers error but I do not see why
type: 'get',
success: function (data) {
if (data.errno == 200) {
var str = "";
data.datas.forEach(function (obj, index, array) {
str += "<option value ='" + obj.name + "'>" + obj.name + "</option>"
})}}
$(".testing").html(str)
$(".testing").select2();
}});
Что должно бытьизменился здесь?Был бы признателен за советы по отладке интерфейса.Спасибо.