Изменение атрибута значения элемента в select2 после вставки AJAX дБ - PullRequest
0 голосов
/ 11 января 2020

Я добавляю новый элемент в select2. Когда это происходит, я запускаю запрос onChange AJAX. Запрос AJAX добавляет новый элемент в БД и возвращает идентификатор вставленной строки.

ATM, значение добавленной опции в select2 содержит исходное введенное мной значение строки. Я хочу обновить значение этой указанной c опции в select2, чтобы она стала идентификатором строки базы данных, которая была возвращена из вызова AJAX.

Вот JS:

$('.my-select2').on('change', function() {
    $.ajax({
        type: 'POST',
        url: '/ajax/groups/saveGroup',
        data: {
            "_token": "{{ csrf_token() }}",
            "value": this.value
        },
        dataType: 'json',
    success: function(data){

            console.log(data); // this equals the id of the row in the db, 
                               // and it's what I want to make into the value of 
                               // the option that's been added.

            // I've tried many more than the following and none have worked.

            // $(this).attr("value", data);
            // $(this).val(data).change();
            // $(this).select2("val", data);
            // $('.my-select2').select2('data', {id: data, text: 'original value'});
        }       
    }); 

Помогите, пожалуйста, у меня нет идей и нет запросов Google.

1 Ответ

0 голосов
/ 11 января 2020

Я решил эту проблему с помощью отдельной функции AJAX, которая извлекала все записи из БД и перекрашивала весь элемент управления select2. Это немного дороже, но делает работу.

...