Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用选定的选择获取多个选择框选项以保持选中状态_Php_Jquery_Wordpress_Html Select - Fatal编程技术网

Php 使用选定的选择获取多个选择框选项以保持选中状态

Php 使用选定的选择获取多个选择框选项以保持选中状态,php,jquery,wordpress,html-select,Php,Jquery,Wordpress,Html Select,我试图在下面的选择框中使所选选项保持选中状态。(选择框位于WordPress admin的菜单页面中)。我已经验证了数据是否保存到数据库中,但我很难确定如何从数据库中获取数据,以便在保存页面后标记为给定选择框选择的选项。页面上有多个选择框 <script type="text/javascript"> jQuery(document).ready(function($){ $(".chzn-select").chosen(); }); </sc

我试图在下面的选择框中使所选选项保持选中状态。(选择框位于WordPress admin的菜单页面中)。我已经验证了数据是否保存到数据库中,但我很难确定如何从数据库中获取数据,以便在保存页面后标记为给定选择框选择的选项。页面上有多个选择框

<script type="text/javascript">
    jQuery(document).ready(function($){ 
        $(".chzn-select").chosen();
    });
</script>

<select name="locations[<?php echo $item_id; ?>]" id="edit-menu-item-visibility-<?php echo $item_id; ?>" class="chzn-select" multiple="true">
    <option value="DZ">Algeria</option>
    <option value="AS">American Samoa</option>
    <option value="AD">Andorra</option>
    ...

选择框使用所选的selectjquery插件。下面是一个问答,提供了一些关于使用JS标记所选选项的指导:。页面上有多个选择框时,我无法使其正常工作

<script type="text/javascript">
    jQuery(document).ready(function($){ 
        $(".chzn-select").chosen();
    });
</script>

<select name="locations[<?php echo $item_id; ?>]" id="edit-menu-item-visibility-<?php echo $item_id; ?>" class="chzn-select" multiple="true">
    <option value="DZ">Algeria</option>
    <option value="AS">American Samoa</option>
    <option value="AD">Andorra</option>
    ...
下面是我的非工作尝试。如果我理解正确,可以使用JS将值设置为selected。但我也不能让它发挥作用。非常感谢您的帮助

<option value="AF" <?php $val = implode(",",get_post_meta( $menu_item_db_id, 'locations', true )); if(in_array("AF", $val)){echo "selected='selected'";}else{echo "";} ?> >Afghanistan</option>

假设
$locations
是选定国家/地区代码的数组

<option value="DZ"<?php echo (in_array('DZ', $locations)) ? ' selected' : '' ?>>Algeria</option>

假设
$locations
是选定国家/地区代码的数组

<option value="DZ"<?php echo (in_array('DZ', $locations)) ? ' selected' : '' ?>>Algeria</option>
如您所写

<option value="AF" <?php $val = implode(",",get_post_meta( $menu_item_db_id, 'locations', true )); if(in_array("AF", $val)){echo "selected='selected'";}else{echo "";} ?> >Afghanistan</option>
备选案文2

如果该值保存为一个
序列化的
字符串,则需要先
取消序列化
输出,然后通过\u array()中的
检查它。

因此,使用
或者\u unserialize()
:仅当值被序列化时才取消序列化

因此,代码变成:

<option value="AF" <?php $val = maybe_unserialize(get_post_meta( $menu_item_db_id, 'locations', true )); if(in_array("AF", $val)){echo "selected='selected'";}else{echo "";} ?> >Afghanistan</option>
一件重要的事

首先尝试打印like的输出

$val = get_post_meta( $menu_item_db_id, 'locations', true );
echo '<pre>';
print_r($val);
echo '</pre>';
';
如您所写

<option value="AF" <?php $val = implode(",",get_post_meta( $menu_item_db_id, 'locations', true )); if(in_array("AF", $val)){echo "selected='selected'";}else{echo "";} ?> >Afghanistan</option>
备选案文2

如果该值保存为一个
序列化的
字符串,则需要先
取消序列化
输出,然后通过\u array()中的
检查它。

因此,使用
或者\u unserialize()
:仅当值被序列化时才取消序列化

因此,代码变成:

<option value="AF" <?php $val = maybe_unserialize(get_post_meta( $menu_item_db_id, 'locations', true )); if(in_array("AF", $val)){echo "selected='selected'";}else{echo "";} ?> >Afghanistan</option>
一件重要的事

首先尝试打印like的输出

$val = get_post_meta( $menu_item_db_id, 'locations', true );
echo '<pre>';
print_r($val);
echo '</pre>';
';
Ok,$val未返回所需的输出。请看我在原始帖子中的更新。欢迎:)。。小错误会导致巨大的差异。好的,$val没有返回所需的输出。请看我在原始帖子中的更新。欢迎:)。。小错误导致巨大的差异。
$val = get_post_meta( $menu_item_db_id, 'locations', true );
echo '<pre>';
print_r($val);
echo '</pre>';
<select name="locations[<?php echo $item_id; ?>]" id="edit-menu-item-visibility-<?php echo $item_id; ?>" class="chzn-select" multiple="true">
    <option value="DZ">Algeria</option>
    <option value="AS">American Samoa</option>
    <option value="AD">Andorra</option>
    ...
<select name="locations[<?php echo $item_id; ?>][]" id="edit-menu-item-visibility-<?php echo $item_id; ?>" class="chzn-select" multiple="true">
        <option value="DZ">Algeria</option>
        <option value="AS">American Samoa</option>
        <option value="AD">Andorra</option>
        ...
$val = get_post_meta( $menu_item_db_id, 'locations', true );
    echo '<pre>';
    print_r($val);
    echo '</pre>';