在 WordPress 中的 select2 上设置多个值
Multiple values set on select2 in 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
将为我们提供选定值 id 的数组,如在浏览器控制台上所见:
(2) ["1301", "1024"]
谁能帮我遮遮掩掩?如何在不再次选择该选项的情况下设置页面加载的值。
感谢您的宝贵时间!
亲切的问候,
这是我犯的愚蠢错误。我忘了触发 select2 更改调用。
所以,行 $("#wte-cross-sell-'.$post->ID.'").val(arrayFromPHP)
现在将是
$("#wte-cross-sell-'.$post->ID.'").val(arrayFromPHP).trigger("change");
希望以后对大家有所帮助!
我一直在尝试在 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"]
谁能帮我遮遮掩掩?如何在不再次选择该选项的情况下设置页面加载的值。
感谢您的宝贵时间!
亲切的问候,
这是我犯的愚蠢错误。我忘了触发 select2 更改调用。
所以,行 $("#wte-cross-sell-'.$post->ID.'").val(arrayFromPHP)
现在将是
$("#wte-cross-sell-'.$post->ID.'").val(arrayFromPHP).trigger("change");
希望以后对大家有所帮助!