保存时无法处理循环中未选中的复选框

Unable to handle unchecked checkbox in loop while save

我的代码中的 foreach 循环中有多个复选框

<form method='POST' action='save.php'>
<?php foreach($problems as $problem): ?>
<input type='text' name="month[]"/>
<input type="checkbox" name="is_increased[]" value="1" />
<?php endforeach; ?>
<input type='submit' value='Submit'/>
</form>

当我保存时,我只得到选中复选框的值。 如何获取所有复选框的值,如果复选框未选中,它将为“0”。 谢谢。

未选中的框不会在 post 中发送。在你的 save.php 中使用:

捕捉它
if (isset($_POST['checkbox']))
{ it is checked }
else
{ not checked }

你必须这样做:

<form method='POST' action='save.php'>
<?php $i = 0; foreach($problems as $problem): ?>
<input type='text' name=month[<?php echo $i ?>]/>
<input type='hidden' name="is_increased[<?php echo $i ?>]" value="0" />
<input type="checkbox" name="is_increased[<?php echo $i ?>]" value="1" />
<?php ++$i; endforeach; ?>
<input type='submit' value='Submit'/>
</form>

如果复选框被选中,它的值被发送到服务器,但如果没有被选中,隐藏的值被发送到服务器