PHP(Wordpress) - 选择多个 - 显示“已选中”状态不起作用

时间:2013-01-15 22:18:42

标签: php forms wordpress multiple-select

在保存或刷新时,我似乎无法使用多重选择来显示selected = "selected"属性。

一切正常(数据库插入正常,结果输出正常),但我无法在刷新后显示所选值。

我正在尝试使用wp核心的selected()函数..

代码(它位于一个widget类中,用于一个相当简单的小部件):

<!-- List Custom Fields Hide Underscore (hide=no) -->
 <p>
  <?php $keys_no = $this->k99_cfsw_get_all_cf_array('no');?>
   <?php if ( $keys_no ) { ?>

  <label for="<?php echo $this->get_field_id('cfl2'); ?>"><?php _e('Select your custom field','k99_gelosa_domain'); ?></label> 

    <select multiple="multiple" class="chzn-select" style="width:150px;height:29px;" size="5" id="<?php echo $this->get_field_id('cfl2'); ?>" name="<?php echo $this->get_field_name('cfl2'); ?>[]" value="<?php $instance['cfl2'] ?>">
    <option  value="<?php isset($instance['cfl2']) ? _e($instance['cfl2']) : _e('#NONE#'); ?>"><?php isset($instance['cfl2']) ? _e('multiple') /*_e($instance['cfl2'])*/ : _e('#NONE#'); ?></option>

    <!--<option value="#NONE#"><?php //echo $cfl; ?></option>-->

    <!--<option value="------">-------</option>-->
    <?php
        foreach ( $keys_no as $key ) {
            echo "\n<option value='" .esc_attr($key) . "'". selected( $instance['cfl2'],esc_attr($key) ,FALSE).">". esc_html($key) . "</option>";
        }
    ?>
    </select>
    <?php

} ?>
</p>

作为旁注和奖金问题 - 我也使用chosen JS - 它也正常工作,(除了它没有显示所选项目..)但也有一个小错误当窗口小部件关闭时它不会启动 - 只有在保存在打开状态后...

1 个答案:

答案 0 :(得分:9)

从不介意,发现它,答案是:

 selected(true, in_array($key, $instance['cfl2']), false)