我正在尝试将所有选项保存在<select>
小部件中的元素。到目前为止,我有以下表单的PHP代码:
public function form( $instance ) {
// Code for editing/adding title and adding IDs to the <select> object
// ...
<select class="widefat" id="<?php echo $this->get_field_id(\'ID_list\'); ?>" name="<?php echo $this->get_field_name(\'ID_list\'); ?>[]" multiple>
<?php
foreach( $instance[\'ID_list\'] as $id )
{
echo \'<option value="\' . $id . \'">\' . $id . \'</option>\' . "\\n";
}
?>
</select>
}
我还为表单末尾的save按钮创建了一个jQuery处理程序,其代码如下:$(\'input#<?php echo $this->get_field_id(\'savewidget\'); ?>\').click( function( event ) {
$(\'select#<?php echo $this->get_field_id(\'ID_list\'); ?> option\').prop(\'selected\', true);
});
然后,我将以下代码用于update
小部件的功能:public function update( $new_instance, $old_instance ) {
// Update the title, etc...
$instance[\'ID_list\'] = isset( $new_instance[\'ID_list\'] ) ? $new_instance[\'ID_list\'] : array();
return $instance;
}
我希望$instance[\'ID_list\']
会表现得像_POST(\'ID_list\')
将是一个普通PHP表单,并且将是一个包含所有选定元素(在本例中是所有添加的ID)的子数组,但是,这似乎不会发生;WordPress的惯用方式是什么?提前感谢!