Retrieving Input Values from Checkboxes in PHP

Q

How To Retrieve Input Values for Checkboxes Properly in PHP?

✍: FYIcenter.com

A

If multiple input values are submitted with the same field name, like the case of a group of checkboxes, you should add ([]) to the end of the field name. This tells the PHP engine that multiple values are expected for this field. The engine will then store the values in an indexed array, and put the array as the "value" in $_REQUEST. In order to retrieve multiple values of checkboxes properly, you need to treat $_REQUEST[field_name] as an array. The following PHP script is an enhanced version of processing_forms.php that handles multiple values properly:

<?php
  print("<html><pre>");
  $count = count($_REQUEST);
  print("Number of values: $count\n");
  foreach ($_REQUEST as $key=>$value) {
    if (is_array($value)) {
      print("  $key is an array\n");
      for ($i = 0; $i < count($value); $i++) {
         print("    ".$key."[".$i."] = ".$value[$i]."\n");
      }
    } else { 
      print("  $key = $value\n");
    }
  }
  print("</pre></html>\n");
?>

Now you need to modify the submit_comments.php as:

<?php
  print("<html><form action=processing_forms.php method=post>");
  print("<table><tr><td colspan=2>Please enter and submit your"
    ." comments about FYICenter.com:</td></tr>");
  print("<tr><td>Your Name:</td>"
    ."<td><input type=text name=name></td></tr>\n");
  print("<tr><td>Site Visited:</td><td>"
    ."<input type=checkbox name=site[] value=dev>Dev FYI Center, "
    ."<input type=checkbox name=site[] value=sqa>SQA FYI Center, "
    ."<input type=checkbox name=site[] value=dba>DBA FYI Center "
    ."</td></tr>\n");
  print("<tr><td>Like Site:</td>"
    ."<td><input type=checkbox name=rate></td></tr>\n");
  print("<tr><td>Comments:</td>"
    ."<td><input type=text name=comment></td></tr>\n");
  print("<tr><td colspan=2><input type=submit><td></tr></table>\n");
  print("</form></html>\n");
?>

If you test the form by selecting two checkboxes, you will get something like this:

Number of values: 4
  name = Mary
  site is an array
    site[0] = dev
    site[1] = sqa
  rate = on
  comment = Good sites for developers.

 

Processing Web Forms in PHP

⇒⇒PHP Tutorials

2016-11-13, 253👍, 0💬