Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Using HTML Fieldsets for PHP form arrays

I know you can use name arrays for multiple form inputs (e.g. <input type="text" name="username[]">, but can this also be used for entire fieldsets? How would this be manipulated with the PHP $_POST global?

Here's what I am trying to do:

<fieldset name="player[]">
  <input type="text" name="username">
  <input type="number" name="points">
</fieldset>

<fieldset name="player[]">
  <input type="text" name="username">
  <input type="number" name="points">
</fieldset>

The reason why I am trying to do this is because I am building a form that allows the user to dynamically add/subtract "player" fieldsets. If you have a better solution than what I was asking for, please feel free to provide an alternative.

like image 924
Jason Avatar asked Dec 26 '22 07:12

Jason


1 Answers

Alternatively, if you want such grouping you could create a grouping in your form such as this: consider this example:

<form method="POST" action="">
    <fieldset>
        Username: <input type="text" name="player[0][username]" />
        Points: <input type="number" name="player[0][points]" />
    </fieldset>

    <fieldset>
        Username: <input type="text" name="player[1][username]" />
        Points: <input type="number" name="player[1][points]" />
    </fieldset>


    <br/>
    <input type="submit" name="submit" />
</form>

When you process it:

if(isset($_POST['submit'])){
    $all_players = $_POST['player'];
    echo '<pre>';
    print_r($all_players);
    echo '</pre>';
}

It should yield something like this:

Array
(
    [0] => Array
        (
            [username] => Test1
            [points] => 1
        )

    [1] => Array
        (
            [username] => Test2
            [points] => 2
        )

)
like image 195
user1978142 Avatar answered Dec 27 '22 20:12

user1978142