我可以将关联数组放在表单输入中以在PHP中处理吗?

2022-08-30 19:51:07

我知道我可以做这样的事情,但是有没有可能做这样的事情,让它在PHP中显示为?<input name="foo[]"><input name="foo[bar]">$_POST['foo']['bar']

我问的原因是因为我正在制作一个巨大的表单元素表(包括具有多个选择<选择>),并且我希望为我正在POST的脚本干净地组织我的数据。我希望每列中的输入元素具有相同的基名称,但行标识符与数组键不同。这有意义吗?

编辑:我已经尝试过了,但显然Drupal正在干扰我想要做的事情。我以为我只是弄错了语法。Firebug 告诉我,我的输入名称构造与此完全相同,但我的数据返回为 而不是 .[foo[bar]] => data[foo] => array([bar] => data)

编辑2:似乎我真正的问题是我的假设,即在Drupal中将具有与相同的数组层次结构。我永远不应该认为Drupal会那么合理和直观。我很抱歉浪费你的时间。你可以做你的生意。$form_state['values']$_POST


答案 1

假设我们想使用以下表格打印学生成绩:

<form action="" method="POST">
  <input name="student['john']">
  <input name="student['kofi']">
  <input name="student['kwame']">
  <input type="submit" name="submit">
</form>

和 PHP 代码来打印他们的分数:

if(isset($_POST['submit']))
{
    echo $_POST['student']['john'] . '<br />';
    echo $_POST['student']['kofi'] . '<br />';
    echo $_POST['student']['kwame'] . '<br />'; 
}

这将打印您输入到字段中的值。


答案 2

是的,您可以。您甚至可以做更多的填充。name="foor[bar][]"