【问题标题】:Using HTML Fieldsets for PHP form arrays为 PHP 表单数组使用 HTML 字段集
【发布时间】:2014-08-09 12:02:18
【问题描述】:

我知道您可以将名称数组用于多个表单输入(例如 <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>

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

【问题讨论】:

    标签: javascript php jquery html


    【解决方案1】:

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

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

    【讨论】:

    • 所以字段集除了分隔表单内容之外在功能上没有任何作用?
    • @Jason 本质上很好,它对其他功能意义没有帮助,它用于适当的语义目的。 this answer 在字段集上提供了一个很好的上下文
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-01-27
    • 1970-01-01
    • 2011-10-08
    • 1970-01-01
    • 2014-05-08
    • 2013-12-09
    • 2015-10-09
    相关资源
    最近更新 更多