【问题标题】:How to post multiple <input type="checkbox" /> as array in PHP?如何在 PHP 中将多个 <input type="checkbox" /> 作为数组发布?
【发布时间】:2010-12-31 00:43:11
【问题描述】:

所以在 PHP 中我可以将它们处理为:

foreach($_POST['checkboxname'] as $i => $value)
...

【问题讨论】:

    标签: php html


    【解决方案1】:

    <html>
    	<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    	<script>
    		$(document).ready(function(even){
    			   $("button").click(function(){
                var checkvalue = [];
                $.each($("input[name='1']:checked"), function(){            
                    checkvalue.push($(this).val());
                });
                alert("checkvalue: " + checkvalue.join(", "));
            });
    		});
    	</script>
    	<body>
    		<input type="checkbox" name="1" value="1" > 1 <br/>
    		<input type="checkbox" name="1"  value="2"> 2 <br/>
    		<input type="checkbox" name="1"  value="3"> 3 <br/>
    		<button type="button">Get Values</button>
    	</body>
    </html>

    【讨论】:

      【解决方案2】:

      如果您为复选框使用数组,您应该添加一个值选项作为单个复选框的标识符,因为这样返回的数组会从 Array ( [0] => on, [1] => on) 到 Array ( [0] => value1, [1] => value5 ),它可以让您识别选中的复选框。

      【讨论】:

        【解决方案3】:

        对于那些可以向服务器发送多个值的 HTML 表单元素(如复选框或多个选择框),您应该使用类似名称的数组作为 HTML 元素名称。像这样:

        <input type="checkbox" name="checkboxname[]" />
        

        还建议您对表单元素使用“multipart/form-data”的编码类型。

        <form enctype="multipart/form-data" action="target.php" method="post">
        

        然后在您的 PHP 脚本中,您可以将多个值数据作为数组访问,就像您想要的那样。

        【讨论】:

        • 似乎 enctype 是不必要的。
        【解决方案4】:

        做这样的事情:

        <input type="checkbox" name="checkboxArray[]" />
        

        注意名称中的 []。

        【讨论】:

        • +1 很好的答案。 @unknown 请记住,如果没有检查任何一个,则甚至不会提交该字段,从而导致 foreach 失败。请务必在foreach 之前测试isset($_POST['checkboxname'])
        【解决方案5】:

        像这样:

        <input type="checkbox" name="checkboxname[]" />
        <input type="checkbox" name="checkboxname[]" />
        <input type="checkbox" name="checkboxname[]" />
        <input type="checkbox" name="checkboxname[]" />
        <input type="checkbox" name="checkboxname[]" />
        

        只需在他们的名字后面加上 []。

        【讨论】:

        • 有点问题!!如果我选中第 5 个复选框,它应该是 Array ( [4] =&gt; on ) 之类的东西,但它显示 Array ( [0] =&gt; on ) 为什么我应该请像 checkboxname[1] checkboxname[2] 这样的值???
        猜你喜欢
        • 2016-07-19
        • 1970-01-01
        • 1970-01-01
        • 2011-12-31
        • 2021-05-05
        • 1970-01-01
        • 2020-10-03
        • 2015-08-11
        • 1970-01-01
        相关资源
        最近更新 更多