在WordPress

时间:2017-05-02 11:23:09

标签: wordpress jquery-select2 backend jquery-select2-4

我一直在尝试在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将为我们提供所选值id的数组,如浏览器控制台上所示: (2) ["1301", "1024"]

任何人都可以对此有所了解吗?如何在不再选择该选项的情况下在pageload上设置值。

谢谢你的时间!

亲切的问候,

1 个答案:

答案 0 :(得分:0)

这是我的愚蠢错误。我忘了触发select2更改通话。 因此,行$("#wte-cross-sell-'.$post->ID.'").val(arrayFromPHP)现在将是

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

希望将来能帮到任何人!