我在 PHP 中使用 POST 获取一些数据。当复选框被选中时,没有问题,但是如果其中一行有一个未选中的复选框,则所有复选框的顺序都消失了。我尝试打印数组,我看到如果未选中复选框,则不会写入其值。
例如,如果我有 5 行,我检查了其中的 2 行。这个数组的大小是 2 而不是 5。如何将未选中的复选框转换为“0”值?
<input onchange="saveChanges();" type="checkbox" name="showS[]" value="1">
用这个逻辑来做
<?php
$checkbox = isset($_POST['checkbox'])?$_POST['checkbox']:0;
....
当有未选中的复选框时,它不会添加到 _POST 数组中,所以你什么都得不到。
为复选框设置适当的值(例如,数据库表中与复选框相关的行的主键列的值)。
处理数组中的值,而不是索引。
你可以做几件事。一种是通过这样做来实际显示检查的内容:
<input onchange="saveChanges();" type="checkbox" name="showS[value1]" value="1">
当然,您也可以只使用唯一标识符而不是数组。另一种选择是用值而不是名称来区分。
如果您没有在 POST 请求中提交的值(用于isset
确定这一点),则false
在适当的地方设置,否则使用提交的字段的值。