Array中的多个Checkbox值

时间:2018-04-17 03:00:22

标签: php arrays checkbox

我有一张表格,其中会显示各种学生姓名和其他信息,并在数组中显示一个复选框(状态)。

  • 表格中的复选框值设置为1或0。 1正在活跃。
  • 用户将查看信息,如果需要,可通过取消选中复选框来禁用整个记录,或通过选中复选框重新激活记录或不做任何操作,只需提交表格(请参见附件截图)< / LI>

我在这里尝试的只是获取0和1值,以便我以后可以更新表。

我得到了:

  

未定义的偏移量:C中的2:\ xampp \ htdocs \ SH - 第116行的Test \ test22.php   第116行:echo $ status [$ i]。&#39;&#39;;

我理解,如果未选中复选框,则不会考虑。 我还试图使用一个隐藏的复选框,其中包含不同的ID,但无法达到我想要的效果。

有什么方法可以接受未选中框的价值吗?

<?php for ($i=0; $i<=$rowcount-1; $i++){ ?>
<tr>
    <td><?php echo $nominee[$i]; ?></td>
    <td><textarea name="updated_comment[]" rows="4"><?php echo $comment[$i] ?> </textarea></td>
    <td><?php echo $nominator_name[$i]; ?></td> 
    <td><input type="checkbox" name="status[]" value="1" <?php if ($nomstatus[$i] == 1) echo 'checked'; ?> /></td>      
</tr>
<?php }
if(isset($_POST['submit'])) {
    $status = (isset($_POST['status']) ? $_POST['status'] : '');
    for ($i=0; $i<=$rowcount-1; $i++){
        if (empty($status[$i])){$status[$i] = $nomstatus[$i];}
        elseif ($status[$i] == "1"){$status[$i] = 1;}
        else {$status[$i] = 0;}
        echo  $status[$i].'</br>';
    }

image

1 个答案:

答案 0 :(得分:0)

Undefined offset错误意味着您正在尝试访问无效的数组位置,例如:

$myArray[0] = "foo";
$myArray[1] = "bar";

echo $myArray[2]; // This should trigger an undefined offset error, 
                  // as your array has only two positions

我猜这个问题与变量$rowcount的错误重用有关。我建议您尝试以下代码,在其中修改它以评估$status循环内for元素的数量。

    if(isset($_POST['submit'])) {
        $status = (isset($_POST['status']) ? $_POST['status'] : '');    
        for ($i=0; $i < count($status); $i++){
            if (empty($status[$i])){
                $status[$i] = $nomstatus[$i];
            } elseif ($status[$i] == "1"){
                $status[$i] = 1;
            } else {
                $status[$i] = 0;
            }
            echo  $status[$i].'</br>';
        }
    }