在没有 javascript 的情况下从 HTML 表单发布一个数组

我有一个有点复杂的表单,我希望通过本地发布元组数组来简化服务器端(PHP)处理。

表格的第一部分代表 用户:

  • 名字
  • 姓氏
  • 电子邮件
  • 地址
  • 等等

表格的第二部分代表 :

  • 水果
  • 身高
  • 等等

问题是,我需要能够 POST 多个 为一个单一的 用户在相同的形式。我想发送的信息作为一个单一的 用户与数组的 ,但这可能是太复杂的形式做。唯一能想到的是使用 javascript 创建一些带有 User 对象和 Tree 对象数组的 JSON 消息。但是最好避免使用 javascript 来支持更多的用户(有些人已经关闭了脚本)。

210804 次浏览

check this one out.

<input type="text" name="firstname">
<input type="text" name="lastname">
<input type="text" name="email">
<input type="text" name="address">


<input type="text" name="tree[tree1][fruit]">
<input type="text" name="tree[tree1][height]">


<input type="text" name="tree[tree2][fruit]">
<input type="text" name="tree[tree2][height]">


<input type="text" name="tree[tree3][fruit]">
<input type="text" name="tree[tree3][height]">

it should end up like this in the $_POST[] array (PHP format for easy visualization)

$_POST[] = array(
'firstname'=>'value',
'lastname'=>'value',
'email'=>'value',
'address'=>'value',
'tree' => array(
'tree1'=>array(
'fruit'=>'value',
'height'=>'value'
),
'tree2'=>array(
'fruit'=>'value',
'height'=>'value'
),
'tree3'=>array(
'fruit'=>'value',
'height'=>'value'
)
)
)

You can also post multiple inputs with the same name and have them save into an array by adding empty square brackets to the input name like this:

<input type="text" name="comment[]" value="comment1"/>
<input type="text" name="comment[]" value="comment2"/>
<input type="text" name="comment[]" value="comment3"/>
<input type="text" name="comment[]" value="comment4"/>

If you use php:

print_r($_POST['comment'])

you will get this:

Array ( [0] => 'comment1' [1] => 'comment2' [2] => 'comment3' [3] => 'comment4' )