【问题标题】:How to send all checkboxes whether checked or unchecked on form submit?如何发送表单提交时选中或未选中的所有复选框?
【发布时间】:2018-06-16 17:10:49
【问题描述】:

我有一个带有多个复选框的表单

<input type="checkbox" name="group_checkbox[]" value="1" />
<input type="checkbox" name="group_checkbox[]" value="1" />
<input type="checkbox" name="group_checkbox[]" value="1" />
<input type="checkbox" name="group_checkbox[]" value="1" />
<input type="checkbox" name="group_checkbox[]" value="1" />

所以当我点击提交按钮提交表单时,它只会发送选中的复选框。

我在网上搜索,发现我们可以在真正的复选框上方包含隐藏字段,如下所示:

<input type="hidden" name="group_checkbox[]" value="0" />
<input type="checkbox" name="group_checkbox[]" value="1" />
<input type="hidden" name="group_checkbox[]" value="0" />
<input type="checkbox" name="group_checkbox[]" value="1" />
<input type="hidden" name="group_checkbox[]" value="0" />
<input type="checkbox" name="group_checkbox[]" value="1" />
<input type="hidden" name="group_checkbox[]" value="0" />
<input type="checkbox" name="group_checkbox[]" value="1" />
<input type="hidden" name="group_checkbox[]" value="0" />
<input type="checkbox" name="group_checkbox[]" value="1" />

但是当我在Laravel Controller中执行var_dump($request-&gt;group_checkbox)时,它会显示

array(10) { [0]=> string(1) "0" [1]=> string(1) "1" [2]=> string(1) "0" [3]=> string(1) "1" [4]=> string(1) "0" [5]=> string(1) "1" [6]=> string(1) "0" [7]=> string(1) "1" [8]=> string(1) "0" [9]=> string(1) "1" }

当所有 5 个复选框都被选中时。

并显示

array(5) { [0]=> string(1) "0" [1]=> string(1) "0" [2]=> string(1) "0" [3]=> string(1) "0" [4]=> string(1) "0" }

当没有选中复选框时。

那么为什么在选中复选框时发送(0 和 1)而不只是 1

【问题讨论】:

    标签: html forms laravel-5 checkbox


    【解决方案1】:

    这就是 PHP 处理以 [] 结尾的参数的多个值的方式。如果要使用选中的复选框覆盖 0 值,则需要显式命名索引,否则 PHP 会将其解释为应附加到数组的值。

    所以,请使用grouped_checkboxgrouped_checkbox[0]

    像这样:

    <input name="grouped_checkbox[0]" type="hidden" value="0">
    <input name="grouped_checkbox[0]" type="checkbox" value="1"> <!-- this will overwrite the previous one, if checked -->
    
    <input name="grouped_checkbox[1]" type="hidden" value="0">
    <input name="grouped_checkbox[1]" type="checkbox" value="1"> <!-- this will overwrite the previous one, if checked -->
    
    <!-- ... and so forth -->
    

    【讨论】:

    • 所以你的意思是我应该这样做:
    猜你喜欢
    • 2013-01-27
    • 2014-04-04
    • 1970-01-01
    • 2016-03-30
    • 2020-01-14
    • 1970-01-01
    • 2012-05-23
    • 2011-02-26
    • 1970-01-01
    相关资源
    最近更新 更多