Как добавить тег, используя Ajax, а затем получить выбранный вариант, чтобы показать значение идентификатора? - PullRequest
0 голосов
/ 17 апреля 2020

Я использую Select2 v4 с Ajax для заполнения и поиска доступных опций в базе данных. Я хочу, чтобы пользователь мог добавлять новые параметры, поэтому я включил теги. Мне нужно добавить новый параметр в базу данных, поэтому я фиксирую событие .on('select2:select') и создаю сообщение ajax, чтобы добавить новый параметр, который возвращает идентификатор нового параметра. Что я не могу получить, так это то, что мне нужно изменить идентификатор выбранной опции, чтобы он не совпадал с текстом новой опции, чтобы быть идентификатором, возвращаемым сообщением, поэтому, когда форма отправлена, я получаю целочисленный идентификатор, не текст.

$('#unitSelect2').select2({
        width: '100%',
        delay: 250,
        ajax: {
            url: 'index.php',
            type: 'POST',
            data: function (params) {
                var query = {
                    op_type: 'getUnitOptions',
                    type: 'unit',
                    term: params.term
                }
                return query;
            },
            dataType: 'json'
        },
        tags: true        
    }).on('select2:select', function (evt) {
        if(evt.params.data.id == evt.params.data.text) {
            $.ajax ({
                url: 'index.php',
                type: 'POST',
                data: {op_type: 'addNewDropdownOption', type: 'unit', optionTxt: evt.params.data.text},
                dataType: 'json',
                async: false,
                success: function (data) {
                    //Here's where I can't figure out what to do
                }
            });
        }
    });
...