我有一系列可由用户更改的项目。可以通过以下简化行编辑该数组中的每个项目:
foreach( $items as $item) {
<tr>
<td><input type="text" value="<?php echo esc_attr( $item['name'] ); ?>" /></td>
<td><input type="checkbox" name="" value="" /></td>
<input type="hidden" name="items[<?php echo $i; ?>][ischecked]" value="<?php echo esc_attr( $item['ischecked'] ); ?>" />
</tr>
}
$item['name']
已成功更改,我要问的是如果选中复选框true
,如何设置复选框以存储值$item['ischecked']
?
答案 0 :(得分:0)
使用隐藏输入看起来像是一种解决方法,而不是干净,直接的解决方案。
您可以针对您的情况修改以下代码段吗?
foreach($items as $i=>$item){
echo "<tr> ";
echo "<td><input type=\"text\" name=\"name[$i]\" value=\"",esc_attr($item['name']),"\" /></td>";
echo "<td><input type=\"checkbox\" name=\"check_name[$i]\" value=\"true\"",(isset($_POST["check_name[$i]"])?" checked":"")," /></td>";
echo "</tr>";
// declare a variable for use in future queries, change/use this as/if needed
$check[$i]=(isset($_POST["check_name[$i]"])?"true":"false");
}
我没有测试这个解决方案,所以如果出现问题,请告诉我。