How PHP $_POST gets the multiple values from a HTML form?

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • RC

    How PHP $_POST gets the multiple values from a HTML form?

    I am try test a simple HTML form with PHP

    <form method=POST action="testing .php">
    Cat <input type="checkbox" name="pet" value="cat">
    Dog <input type="checkbox" name="pet" value="dog">
    Pig <input type="checkbox" name="pet" value="pig">
    <br>
    <select name="dates" multiple>
    <option value="Monday"> Monday</option>
    <option value="Tuesday" >Tuesday</option>
    <option value="Wednesda y">Wednesday </option>
    <option value="Thursday ">Thursday</option>
    <option value="Friday"> Friday</option>
    <option value="Saturday ">Saturday</option>
    <option value="Sunday"> Sunday</option>
    </select><br>
    <input type="submit" value="Submit">
    <input type="reset" value="Reset">
    </form>

    When I checked cat, pig and selected Tuesday and Saturday from the form
    and click submitt

    My testing.php is

    <?php
    $pet = $_POST['pet'];
    $dates = $_POST['dates'];

    print_r($pet);
    var_dump($dates );
    ?>

    The $_POST['pet'] and $_POST['dates']
    are NOT return as array nor multiple
    strings seperated with a comma.
    It only return the LAST string I have
    checked and/or selected.

    How do I get the multiple values from the
    checkbox and the multiple select from a
    HTML form in PHP?

    Thank Q very much in advance!
  • RC

    #2
    Re: How PHP $_POST gets the multiple values from a HTML form?

    RC wrote:[color=blue]
    > I am try test a simple HTML form with PHP
    >
    > <form method=POST action="testing .php">
    > Cat <input type="checkbox" name="pet" value="cat">
    > Dog <input type="checkbox" name="pet" value="dog">
    > Pig <input type="checkbox" name="pet" value="pig">[/color]

    Never mind, I found the solution
    In HTML file form need to changed to

    Cat <input type="checkbox" name="pet[]" value="cat">
    Dog <input type="checkbox" name="pet[]" value="dog">
    Pig <input type="checkbox" name="pet[]" value="pig">
    [color=blue]
    > <br>
    > <select name="dates" multiple>[/color]

    and need to changed to
    <select name="dates[]" multiple>

    [color=blue]
    > <option value="Monday"> Monday</option>
    > <option value="Tuesday" >Tuesday</option>
    > <option value="Wednesda y">Wednesday </option>
    > <option value="Thursday ">Thursday</option>
    > <option value="Friday"> Friday</option>
    > <option value="Saturday ">Saturday</option>
    > <option value="Sunday"> Sunday</option>
    > </select><br>
    > <input type="submit" value="Submit">
    > <input type="reset" value="Reset">
    > </form>
    >
    > When I checked cat, pig and selected Tuesday and Saturday from the form
    > and click submitt
    >
    > My testing.php is
    >
    > <?php
    > $pet = $_POST['pet'];
    > $dates = $_POST['dates'];[/color]

    Then in PHP need to changed to

    $pet = array($_POST['pet']);
    $dates = array($_POST['dates']);


    [color=blue]
    > print_r($pet);
    > var_dump($dates );
    > ?>
    >[/color]

    Comment

    • Chris

      #3
      Re: How PHP $_POST gets the multiple values from a HTML form?

      On Wed, 18 May 2005 09:34:36 -0400, RC <raymond.chui@n ospam.noaa.gov>
      wrote:


      Try amending the slect tag to include a set of square brackets after
      the name like this:

      <select name="dates[]" multiple>

      That should then give you the selected elements in an array.

      hth

      C


      Comment

      • Ewoud Dronkert

        #4
        Re: How PHP $_POST gets the multiple values from a HTML form?

        On Wed, 18 May 2005 09:43:32 -0400, RC wrote:[color=blue]
        > Then in PHP need to changed to
        >
        > $pet = array($_POST['pet']);
        > $dates = array($_POST['dates']);[/color]

        No way dude, remove the array(), then $pet will still be an array
        because $_POST['pet'] is. By the way, no need to use a local variable
        like $pet, you could just use $_POST['pet']. Try print_r($_POST) ;


        --
        Firefox Web Browser - Rediscover the web - http://getffox.com/
        Thunderbird E-mail and Newsgroups - http://gettbird.com/

        Comment

        Working...