Сбросить все опции на select2 и загрузить другой набор данных - PullRequest
0 голосов
/ 26 апреля 2018

У меня проблема с Jquery Select2. Я хотел установить опцию select2, чтобы изменить другое окно выбора select2.

        var categorySelect = $('#category_select');
        var productSelect = $('#product_select');
        categorySelect.select2();
        productSelect.select2();
        categorySelect.on('change',function () {
            var categoryId = $(this).val();
            var url = "{{url("/ajax/category/:category/products")}}";
            url = url.replace(":category",categoryId);
            $.get(url,function (res) {
                var res = [
                    {id: 900, text: 'AABB'},
                    {id: 800, text: 'WWBB'},
                ]; // dummy response
                productSelect.select2('data',res);
            })
        })

здесь я следую их документации, но не могу понять, что, почему снова набор данных не получается.

1 Ответ

0 голосов
/ 02 мая 2018

Я решил эту проблему по-своему. Я перебираю массив данных ответов и создаю опции для поля выбора продукта

var categorySelect = $('#category_select');
var productSelect = $('#product_select');
categorySelect.select2();
productSelect.select2();
categorySelect.on('change',function () {
    var categoryId = $(this).val();
    var url = "{{url("/ajax/category/:category/products")}}";
    url = url.replace(":category",categoryId);
    $.get(url,function (res) {
        var res = [
            {id: 900, text: 'AABB'},
            {id: 800, text: 'WWBB'},
        ];
        if(res.length > 0) {
            productSelect.empty();
            res.forEach(function (prod) {
                var opt = $('<option>', {
                    'value' : prod.id
                }).text(prod.text);
                productSelect.append(opt);
            });
        }
    })
});
...