这可能并不能完全回答问题,但让我们看看代码的问题:
如果要以与默认值相同的格式保存数据($fields_default
), 然后:
开始您的foreach
像这样:foreach ( $orderdescider as $i => $item )
.
然后在里面foreach
, $id
和$checkbox
应始终这样设置和定义:
$id = isset( $item[\'id\'] ) ? $item[\'id\'] : \'\';
$checkbox_check = isset( $item[\'checkbox_check\'] ) ? $item[\'checkbox_check\'] : \'\';
并在字段中使用适当的值
name
:
<input type="hidden" name="orderdescider[<?php echo $i; ?>][id]"
value="<?php echo $id; ?>">
<input type="checkbox" name="orderdescider[<?php echo $i; ?>][checkbox_check]"
value="1" ...>
对于
checkbox
字段,您可以在写入标记时使用此格式:
<input type="checkbox" value="{value}"<?php // wrapped for clarity
checked( \'{value}\', \'{current/saved value}\' ) ?> ...>
所以在你的情况下,它看起来是这样的:
<input type="checkbox" name="orderdescider[<?php echo $i; ?>][checkbox_check]"
value="1"<?php checked( \'1\', $checkbox_check ) ?> ...>
在哪里
1
是
{value}
, 和
$checkbox_check
是
{current/saved value}
.
(请参见reference 有关使用checked()
函数。)
希望这会有所帮助,以下是全部内容foreach
我用于测试的代码:(我省略了字段的id
, 但请确保使用唯一值)
foreach ($orderdescider as $i => $item) {
$id = isset( $item[\'id\'] ) ? $item[\'id\'] : \'\';
$checkbox_check = isset( $item[\'checkbox_check\'] ) ? $item[\'checkbox_check\'] : \'\';
?>
<li class="sortable-item flexit">
<div class="form-check">
<input type="hidden" name="orderdescider[<?php echo $i; ?>][id]"
value="<?php echo $id; ?>">
<input type="checkbox" name="orderdescider[<?php echo $i; ?>][checkbox_check]"
value="1"<?php checked( \'1\', $checkbox_check ) ?> class="form-check-input">
</div>
</li>
<?php
}