如何在PHP中将多个作为数组发布?

如何在PHP中将多个<input type =“checkbox”/>作为数组发布?

问题描述:

So that in PHP I can deal with them as :

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

Do something like this:

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

Note the [] in the name.

Like this:

<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[]" />

Just append [] to their names.

for those HTML form elements that can send multiple values to server (like checkboxes, or multiple select boxes), you should use an array like name for your HTML element name. like this:

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

also it is recommended that you use an enctype of "multipart/form-data" for your form element.

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

then in your PHP scripts you can access the multiple values data as an array, just like you wanted.

If you use an array for the checkboxes, you should add a value option as identifier for the single checkboxes, because then the returned array changes from Array ( [0] => on, [1] => on) to Array ( [0] => value1, [1] => value5 ), which let you identify the checked checkboxes.

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

</div>