微件开发-下拉选项不会保存

时间:2012-01-23 作者:Danny

因此,我成功地添加了一个下拉选项,问题是当我单击“保存”时,所有选项都将被删除,但所选选项已成功实现。

以下是相关代码:

function widget($args, $instance) {
        extract( $args );

        $pfxattribution = $instance[\'pfx-attribution\'];
}

<p>
            <label for="<?php echo $this->get_field_id(\'pfx-attribution\'); ?>"><?php _e(\'Choose attribution:\'); ?></label>
            <select id="<?php echo $this->get_field_id(\'pfx-attribution\'); ?>" name="<?php echo $this->get_field_name(\'pfx-attribution\'); ?>" class="widefat" /> 
            <option>Purefx</option>
            <option>Foreign Exchange</option>
            <option>Currency Exchange</option>
            </select>
            </p>

function update($new_instance, $old_instance) {
        // Get the old values
        $instance = $old_instance;

        // Update with any new values (and sanitise input)
        $instance[\'pfx-attribution\'] = strip_tags( $new_instance[\'pfx-attribution\'] );

       return $instance;
}
非常感谢您的帮助

3 个回复
最合适的回答,由SO网友:Stephen Harris 整理而成

Danny,这几乎是直接从我制作的插件中提取的:

 <?php function form($instance){    
    $instance = wp_parse_args( (array) $instance, $this->w_arg );
  ?>
  <p>
    <select id="<?php echo $this->get_field_id(\'order\'); ?>" name="<?php echo $this->get_field_name(\'order\'); ?>" type="text">
        <option value="asc" <?php selected($instance[\'order\'], \'asc\'); ?>>ASC </option>
        <option value="desc" <?php selected($instance[\'order\'], \'desc\');?>>DESC </option>
    </select>
</p>

<?php
  }
?>
在没有看到其余代码的情况下,我无法确定问题的根源,但可能是表单没有包装在表单函数中。如果上述内容似乎对您不起作用,也许可以粘贴您的Widget类?

我应该补充一点,我的widget类有一个变量w_arg, 默认值数组!E、 g。

var $w_arg = array(
        \'order\'=> \'ASC\'
        );

SO网友:mor7ifer

你的<option>s需要value= 或者他们不发送任何值。。。基本上是现在value=\'\', 我敢打赌,这就是你所看到的。

SO网友:Geert

你的<select> 不应该有value 属性,也不是type="text" 属性

结束

相关推荐

Dividing widgets in sidebar?

我有一个自定义的边栏叫做页脚。我使用以下代码显示此侧栏:<?php if ( !function_exists(\'dynamic_sidebar\') || !dynamic_sidebar(\'Footer\') ) : ?> (maybe I should do something in this line?) :) <?php endif; ?> 这很顺利,但现在几乎每个主题都允许用户将其小部件放在列中,就像这样:http://ka