Выберите значение множественного выбора null при динамическом добавлении параметров - PullRequest
0 голосов
/ 06 ноября 2018

Я использую мультиселекторный вход select2.

Выбор заполняется Ajax.

$('#schedule_' + repeatersAdded + '_selectedProducts').select2({
    ajax: {
        url: ajaxurl, // AJAX URL is predefined in WordPress admin
        dataType: 'json',
        delay: 250, // delay in ms while typing when to perform a AJAX search
        data: function (params) {
            return {
                q: params.term, // search query
                action: 'Get_Products'
            };
        },
        processResults: function( data ) {
            var options = [];
            if ( data ) {

                // data is the array of arrays, and each of them contains ID and the Label of the option
                $.each( data, function( index, text ) { // do not forget that "index" is just auto incremented value
                    options.push( { id: text[0], text: text[1]  } );
                });

            }
            return {
                results: options
            };
        },
        cache: true
    },
    minimumInputLength: 3,
    placeholder: "Please select"
});

Это отлично работает. Я храню выбранные значения в моей БД.

Когда я хочу отобразить значения из БД для пользователя, я использую следующий код (args ['selected_products'] содержит информацию о моем элементе):

args['selected_products'].forEach(function ( item, index ) {
        var newOption = new Option(item.text, item.id, true, true);
        $("#schedule_" + repeatersAdded + "_selectedProducts").append(newOption).trigger('change');
        selectedOptions.push(item.id);
    });

Приведенный выше код следует документации здесь

Вход select2 отлично отображает параметры, но когда мне нужно получить доступ к значениям (чтобы снова сохранить в БД), он возвращает NULL. Обычно он возвращает массив со всеми значениями параметров.

Почему он это делает?

...