PHP POST复选框问题

PHP POST复选框问题,php,post,checkbox,Php,Post,Checkbox,我在PHP中使用POST获取一些数据。选中复选框时,没有问题,但如果其中一行有未选中的复选框,则所有复选框的顺序都将消失。我试着打印数组,我发现如果复选框未选中,它的值就不会被写入 例如,如果我有5行,我检查其中的2行。此数组的大小是2而不是5。如何将未选中的复选框转换为0值 <input onchange="saveChanges();" type="checkbox" name="showS[]" value="1"> 如果在POST请求中未提交值,请使用确定该值,然后在适当的

我在PHP中使用POST获取一些数据。选中复选框时,没有问题,但如果其中一行有未选中的复选框,则所有复选框的顺序都将消失。我试着打印数组,我发现如果复选框未选中,它的值就不会被写入

例如,如果我有5行,我检查其中的2行。此数组的大小是2而不是5。如何将未选中的复选框转换为0值

<input onchange="saveChanges();" type="checkbox" name="showS[]" value="1">

如果在POST请求中未提交值,请使用确定该值,然后在适当的情况下设置为false,否则使用提交字段的值。

只需使用此逻辑即可

 <?php
      $checkbox = isset($_POST['checkbox'])?$_POST['checkbox']:0;
      ....

当有未选中的复选框时,它不会添加到_POST数组中,因此您根本不会得到任何东西。

为复选框设置一个适当的值,例如复选框所关联的数据库表中的行的主键列的值

处理数组中的值,而不是索引。

您可以做几件事。 一个是通过这样做实际显示检查的内容:

<input onchange="saveChanges();" type="checkbox" name="showS[value1]" value="1">
当然,您也可以只使用唯一标识符,而不使用数组。另一个选项是使用值而不是名称来实现差异