передать значение в JQuery select2 с помощью ajax - PullRequest
0 голосов
/ 25 сентября 2019

Я новичок в веб-разработке и узнаю, как 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();
}});

Что должно бытьизменился здесь?Был бы признателен за советы по отладке интерфейса.Спасибо.

...