【问题标题】:Is it possible to group $_POST variables?是否可以对 $_POST 变量进行分组?
【发布时间】:2009-10-16 08:35:03
【问题描述】:

我有一个巨大的表格(对于内部 CMS),它由几个部分组成,其中一些是可选的,有些是强制性的。一切都在一个巨大的形式下(它必须是这样的,没有ajax,没有其他方式:-()

因为一切都以一种 Dilbertesque 的方式每秒都在发生变化,所以我想知道是否有任何简单的方法可以对 $_POST 数据进行分组,我的意思是像这样发送 POST:

$_POST['form1']['datax']

或者轻松地从服务器端检索数据,我的意思是轻松地无需明确声明:

$array1 = array($_POST['datax'],$_POST['datay'],...);

$array2 = array($_POST['dataalpha'],$_POST['dataomega'],...);

因为大约有 60 个字段。

我希望我能够很好地解释这一点,并且一如既往地非常感谢你..

【问题讨论】:

    标签: php forms post


    【解决方案1】:

    如果您为输入元素提供类似数组的名称,它们将作为数组到达 PHP $_POST(或 $_GET)数组:

    <input type="text" name="foo[]" value="a"/>
    <input type="text" name="foo[]" value="b" />
    <input type="text" name="foo[]" value="c" />
    <input type="text" name="foo[bar]" value="d" />
    <input type="text" name="foo[baz][]" value="e" />
    <input type="text" name="foo[baz][]" value="f" />
    

    前往:

    print_r($_POST)
    foo => array (
        0 => a
        1 => b
        2 => c
        bar => d
        baz => array(
            0 => e
            1 => f
        )
    )
    

    【讨论】:

    • 谢谢,完全忘了这个
    • 我从来不知道你能做到这一点!太好了!
    • 另外,据我记忆,您可以在方括号之间输入一些内容,它会成为该数组的索引!
    • 虽然这个答案已经 1 岁多了,但它让我很开心 - 干杯
    【解决方案2】:

    如果您正确命名输入,则可以这样做。示例:

    <input type="text" name="textInput[]" />
    <input type="text" name="textInput[]" />
    

    这将在 $_POST 中填充一个名为 textInput 的数组。那就是:

    $_POST['textInput'][0] == "whatever the first was set to be"
    $_POST['textInput'][1] == "whatever the second was set to be"
    

    【讨论】:

      【解决方案3】:

      在输入名称后使用方括号会导致它在 PHP 中被分组:

      <input name="foo[]" type="text" value="1" />
      <input name="foo[]" type="text" value="2" />
      

      你也可以创建一个关联数组:

      <input name="foo[bar]" type="text" />
      

      我认为多维数组也可以,但我不确定我是否真的尝试过。

      编辑:这是同一件事answered in the PHP FAQ。

      【讨论】:

        【解决方案4】:

        您可以像这样使用表单字段:

        <input type="text" name="form1['datax']"/>
        

        【讨论】:

          猜你喜欢
          • 2021-12-02
          • 1970-01-01
          • 1970-01-01
          • 2012-03-19
          • 2011-02-25
          • 2017-05-02
          • 2011-03-16
          • 2011-09-06
          • 1970-01-01
          相关资源
          最近更新 更多