【问题标题】:Unable to handle unchecked checkbox in loop while save保存时无法处理循环中未选中的复选框
【发布时间】:2015-04-23 00:54:28
【问题描述】:

我的代码中的 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”。 谢谢。

【问题讨论】:

  • 您可能会找到您的解决方案:stackoverflow.com/questions/18382979/…
  • 谢谢。但是这个主题并没有给出关于未选中复选框的任何想法。但我需要将那些未经检查的值设为“0”或 false 来保存。
  • 您发布的代码不支持您未向我们展示的“错误”。将更多相关代码发布到问题中,包括针对它的 PHP。另外确保为&lt;? endforeach; ?&gt;启用短标签
  • 那么这个name=month[]应该被引用name="month[]"
  • @Fred-ii- 我认为他并没有要求任何错误!!

标签: php checkbox


【解决方案1】:

你必须这样做:

<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>

如果checkbox被选中,它的值被发送到服务器,但是如果它没有被选中,hidden的值被发送到服务器

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2019-09-05
      • 2020-10-18
      • 1970-01-01
      • 2020-04-20
      • 2017-11-12
      • 2018-07-25
      • 1970-01-01
      • 2022-03-03
      • 2021-12-31
      相关资源
      最近更新 更多