我一直在尝试在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上设置值。
谢谢你的时间!
亲切的问候,
答案 0 :(得分:0)
这是我的愚蠢错误。我忘了触发select2更改通话。
因此,行$("#wte-cross-sell-'.$post->ID.'").val(arrayFromPHP)
现在将是
$("#wte-cross-sell-'.$post->ID.'").val(arrayFromPHP).trigger("change");
希望将来能帮到任何人!