Skip to content
Advertisement

Get All Data PHP-HTML (Including all Checkbox)

I have array of HTML data

<tr><input type="checkbox" name="checkbox[]" value="0"> <input type="text" name="char[]" value="A"></tr>
<tr><input type="checkbox" name="checkbox[]" value="1"> <input type="text" name="char[]" value="B"></tr>
<tr><input type="checkbox" name="checkbox[]" value="2"> <input type="text" name="char[]" value="C"></tr>

How can I get all of of item in PHP Post? I need to get all data and check if the checkbox were check or not. Like so:

<?php
   foreach($_POST["char"] as $data) {
      //If Checkboxes Checked:
      // DO INSERT CHECKED ROW
      //Else If Not Checked:
      // ECHO VALUE NOT CHECKED ROW

   }
?>

If I’m trying, the data were different from what I has check or only the checked value that sent.

Thank you.

Advertisement

Answer

Use indexes in your field names:

<form method="POST">

    <table>
    <tr>
        <td><input type="checkbox" name="checkbox[0]" value="0"></td>
        <td><input type="text" name="char[0]" value="A"></td> 
    </tr>
    <tr>
        <td><input type="checkbox" name="checkbox[1]" value="0"></td>
        <td><input type="text" name="char[1]" value="B"></td>
    </tr>
    <tr>
        <td><input type="checkbox" name="checkbox[2]" value="0"></td>
        <td><input type="text" name="char[2]" value="C"></td>
    </tr>
    </table>
    <input type="submit" name="submit">
</form>

Then you can use a loop counter:

for ($i = 0; $i<count($_POST['char'];$i++) {
    if (isset($_POST['checkbox'][$i]) {
         // Do something if checkbox is set using $_POST['char'][$i]
    } else {
        // Do something if checkbox is not set
    }
}
User contributions licensed under: CC BY-SA
8 People found this is helpful
Advertisement