Несколько значений, установленных для select2 в WordPress

Я пытался показать несколько выбранных значений в раскрывающемся списке select2. Итак, я разработал раскрывающийся список и сохранил выбранные значения. У меня есть следующий код в качестве параметров для раскрывающегося списка: <option value="<?php echo esc_attr($post->ID);?>"><?php the_title();?></option> Примечание: параметры находятся в цикле.

Теперь я не могу установить эти несколько значений для select2 при загрузке страницы. Эти несколько значений устанавливаются только в том случае, если какой-либо параметр снова выбран из раскрывающегося списка.

Мой код указан ниже:

if ( isset( $wp_travel_engine_setting['crosssell']['trips'] ) && $wp_travel_engine_setting['crosssell']['trips']!='' )
{
    $selectedval = $wp_travel_engine_setting['crosssell']['trips'];
}
echo
'<script>
jQuery(document).ready(function($){
    $("#wte-cross-sell-'.$post->ID.'").select2();
    var arrayFromPHP = '.json_encode($selectedval).';
    console.log(arrayFromPHP);
    $("#wte-cross-sell-'.$post->ID.'").val(arrayFromPHP);
    $("#checkbox").click(function(){
        if($("#checkbox").is(":checked") ){
            $("#wte-cross-sell-'.$post->ID.' > option").prop("selected","selected");
            $("#wte-cross-sell-'.$post->ID.'").trigger("change");
        }else{
            $("#wte-cross-sell-'.$post->ID.' > option").removeAttr("selected");
            $("#wte-cross-sell-'.$post->ID.'").trigger("change");
        }
    });
});</script>';

//переменная $selectedval даст нам массив идентификаторов выбранных значений, как показано в консоли браузера: (2) ["1301", "1024"]

Кто-нибудь может пролить свет на это? Как я могу установить значения при загрузке страницы, не выбирая параметр снова.

Спасибо за ваше время!

С уважением,


person saurav.rox    schedule 02.05.2017    source источник


Ответы (1)


Это была моя глупая ошибка. Я забыл вызвать вызов изменения select2. Итак, строка $("#wte-cross-sell-'.$post->ID.'").val(arrayFromPHP) теперь будет

$("#wte-cross-sell-'.$post->ID.'").val(arrayFromPHP).trigger("change");

Надеюсь, это поможет кому-нибудь в будущем!

person saurav.rox    schedule 03.05.2017