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