How to post multiple <input type="checkbox" /> as array in PHP?

Viewed 58397

So that in PHP I can deal with them as :

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

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.

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

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.

Related