PHP在数组

时间:2017-02-17 00:32:19

标签: php arrays

我有一系列可由用户更改的项目。可以通过以下简化行编辑该数组中的每个项目:

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']

1 个答案:

答案 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"); 
}

我没有测试这个解决方案,所以如果出现问题,请告诉我。