为PHP表单数组使用HTML字段集


Using HTML Fieldsets for PHP form arrays

我知道你可以使用多个表单输入名称数组(例如<input type="text" name="username[]">,但这也可以用于整个字段集吗?如何使用PHP $_POST全局变量来操作呢?

我要做的是:

<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>

我试图这样做的原因是因为我正在构建一个允许用户动态添加/减去"玩家"字段集的表单。如果你有一个比我要求的更好的解决方案,请随时提供一个替代方案。

或者,如果您想要这样的分组,您可以在表单中创建一个分组,如下所示:

<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>

处理时:

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

结果应该是这样的:

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