getting multiple checkboxes names/id's with php

前端 未结 4 502
不思量自难忘°
不思量自难忘° 2020-11-30 06:59

How can i get the names or id\'s of the multiple selected checkboxes on submit, using the PHP? Following is example form. Thanks.

相关标签:
4条回答
  • 2020-11-30 07:30

    You won't get the ids but the names will be associative indexes in the $_POST array (and $_REQUEST). NOTE: They will only be available in the array if they were checked by the client.

    if ($_POST['oragne'] == 'on')

    0 讨论(0)
  • 2020-11-30 07:32

    You can set them up to post to PHP as arrays, if you build them similar to below:

    <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
       <input type="checkbox" name="box_group_1[oragne]" id="oragne">
       <input type="checkbox" name="box_group_1[apple]" id="apple">
       <input type="checkbox" name="box_group_1[sky]" id="sky">
       <input type="checkbox" name="box_group_1[sea]" id="sea">
       <br>
       <br>
       <input type="submit" name="Submit" value="Submit">
    </form>
    <?php
    print_r($_POST['box_group_1']);
    ?>
    
    0 讨论(0)
  • 2020-11-30 07:34

    You need to give the inputs the same name:

    <input type="checkbox" name="selection[]" value="orange">
    <input type="checkbox" name="selection[]" value="apple">
    <input type="checkbox" name="selection[]" value="sky">
    <input type="checkbox" name="selection[]" value="sea">
    

    Then iterate over the $_POST['selection'] array in PHP.

    0 讨论(0)
  • 2020-11-30 07:52

    Checkbox values are submitted from a form only if the checkbox is selected. What's more, it's the name attribute that counts, not the ID.

    There are several ways of handling checkboxes in PHP:

    1. Give all checkboxes the same name followed by a pair of square brackets, so the entire set is treated as an array. In this case, give each checkbox a value.
    2. Give each checkbox a different name and a value.
    3. Give each checkbox a different name, but no value.

    In each case, you need to check for the existence of the checkbox name in the $_POST array.

    For example:

    <input type="checkbox" name="color[]" id="orange" value="orange">
    <input type="checkbox" name="color[]" id="apple" value="apple">
    

    To get the values for these checkboxes:

    if (isset($_POST['color'])) {
        $colors = $_POST['color'];
        // $colors is an array of selected values
    }
    

    However, if each checkbox has a different name and an explicit value like this:

    <input type="checkbox" name="orange" id="orange" value="orange">
    <input type="checkbox" name="apple" id="apple" value="apple">
    

    You still need to use isset():

    if (isset($_POST['orange'])) {
        // orange has been set and its value is "orange"
    }
    

    If you don't set a value, the default value is "on", but it won't be in the $_POST array unless it has been selected, so you still need to use isset().

    0 讨论(0)
提交回复
热议问题