所以我有一个即时消息制作的小部件,它允许用户更新4个开关。每个开关都有相同的字段、名称、描述、价格和金额,因此我决定使用for循环来构建小部件,而不是对每个字段进行硬编码,以避免重复我自己的操作。
我不知道如何保存这些值tho,因为从我为构建小部件而查看的Tut中,name字段必须是$this->get\\u field\\u name
小部件切换小部件[4][名称]
因此,我的form()函数如下所示
for($i =0; $i<4;$i++){
$name = $instance[$i][\'name\'];
$description = $instance[$i][\'description\'];
$amount = $instance[$i][\'amount\'];
$price = $instance[$i][\'price\'];
?>
<div id="<?php echo $i; ?>" class="switch_form" style="background-color:<?php echo $i%2 == 0 ? \'\': \'#DFDFDF\' ;?>; border-radius:4px; padding:5px;">
<h4>Switch # <?php echo $i+1;?> </h4>
<p>
<label for="<?php echo $this->get_field_id( \'name\' ); ?>"><?php _e(\'Name:\', \'Name\'); ?></label>
<input style ="width:90%;" name="<?php echo $this->get_field_name($i); ?>[\'name\']" value="<?php echo $name; ?>" />
</p>
<p>
<label for="<?php echo $this->get_field_id( \'description\' ); ?>"><?php _e(\'Description:\', \'Description\'); ?></label>
<input style ="width:90%;" name="<?php echo $this->get_field_name($i); ?>[\'description\']" value="<?php echo $description; ?>" />
</p>
<p>
<label for="<?php echo $this->get_field_id( \'amount\' ); ?>"><?php _e(\'Amount:\', \'Amount\'); ?></label>
<input style ="width:90%;" name="<?php echo $this->get_field_name($i); ?>[\'amount\']" value="<?php echo $amount; ?>" />
</p>
<p>
<label for="<?php echo $this->get_field_id( \'price\' ); ?>"><?php _e(\'Price:\', \'Price\'); ?></label>
<input style ="width:90%;" name="<?php echo $this->get_field_name($i); ?>[\'price\']" value="<?php echo $price; ?>" />
</p>
</div>
<?php
}
我的update()函数如下所示:
function update( $new_instance, $old_instance )
{
$instance = $old_instance;
for($i =0; $i<4;$i++){
$instance[$i][\'name\'] = strip_tags( $new_instance[$i][\'name\'] );
$instance[$i][\'description\'] = strip_tags( $new_instance[$i][\'description\'] );
$instance[$i][\'amount\'] = strip_tags( $new_instance[$i][\'lights_fill\'] );
$instance[$i][\'price\'] = strip_tags( $new_instance[$i][\'price\'] );
}
return $instance;
}
如何将这些值保存到数组中?