PHP Post数组的数组

3
我希望能够修改来自HTML POST请求的两个不同表格,并将其发送到运行PHP的服务器。之前,当我只想更改一个表格时,所有列和值都会放入POST数组中,例如:[colname1]=>val1[colname2]=val2等。然后我会循环遍历POST,构建正确的MySQL语句来执行查询。
我已经修改了我的代码,以便根据所选的下拉框,不仅第一个表格会被修改,还有另一个表格(由用户选择)也会被修改。因此,理想情况下,我希望在PHP中的POST变量中有一个数组的数组。最终,如果POST变量看起来像这样,那就太好了...
[mainTable][colnam1]=>val1 [colnam2]=>val2
[otherTable][colnam1]=>val1 [colnam2]=>val2

目前的解决方法是在表单输入名称前面加上表名,然后在服务器端进行解析,但我更希望能够更灵活地处理,而不是用这种方式。

<input type="text" name="mainTable_colname">
<input type="text" name="otherTable_colname">

根据我的理解,使用表单和POST时,只有指定了名称的HTML表单元素才会被传递到POST变量中。

是否有更好的方法实现此功能?

1个回答

4

将元素的name属性指定为数组,包括您想要的键,您将在$_POST中获得数组:

<input type="text" name="mainTable[colname]">
<input type="text" name="mainTable[colname2]">
<input type="text" name="otherTable[colname]">

var_dump( $_POST['mainTable']); 的输出结果大致如下:

array( 'colname' => 1, 'colname2' => 1);

哇,谢谢!这有多简单啊!我没想到会有这么简单的解决方案!非常感激! - Matthew

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接