是否可以将$ _POST变量分组?
问题描述:
我有一个巨大的形式(内部CMS),由几个部分组成,其中一些是可选的,其中一些是强制性的。所有的是在一个humungous形式(它必须是这样的,没有ajax,没有其他方式:-()
由于在Dilbertesque方式一切都改变每一秒我想知道是否有任何简单的方法分组$ _POST数据,我的意思是发送POST这样的:
$_POST['form1']['datax']
或容易地检索来自服务器端的数据,以及容易我的意思是具有withouth的到expressily宣告:
$array1 = array($_POST['datax'],$_POST['datay'],...);
$array2 = array($_POST['dataalpha'],$_POST['dataomega'],...);
因为有大约60个字段。
我希望我能解释这口井和往常一样非常感谢你..
答
如果你给你的输入元素类似数组的名字,他们的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
)
)
答
用方括号输入名称后会导致它在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。
答
如果你正确地命名你的输入,你可以这样做。示例:
<input type="text" name="textInput[]" />
<input type="text" name="textInput[]" />
这将填充名为textInput的$ _POST中的数组。那就是:
$_POST['textInput'][0] == "whatever the first was set to be"
$_POST['textInput'][1] == "whatever the second was set to be"
答
你可以用你的表单字段是这样的:
<input type="text" name="form1['datax']"/>
谢谢你,完全忘了这个 – 0plus1 2009-10-16 08:40:00
我从来不知道你可以做到这一点!大! – Psytronic 2009-10-16 09:45:08
此外,从我记得,你可以在方括号之间键入东西,它就成为该数组的索引! – alex 2009-10-20 13:25:51