从没有javascript的HTML表单发布一个数组

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

表单的第一部分代表一个用户

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

表单的第二部分代表一棵树

  • 水果
  • 高度
  • 等等

问题是,我需要能够在同一个表单中为单个用户发布多个 。 我想将这些信息作为一个单独的用户使用一组来发送,但是这对于一个表单来说可能太复杂了。 唯一想到的就是使用javascript来创build一些带有User对象和一个Tree对象数组的JSON消息。 但是,避免使用javascript来支持更多的用户(有些人closures了脚本)会很好。

检查这一个。

<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]"> 

它应该像这样在$ _POST []数组(PHP格式,便于可视化)

 $_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' ) ) ) 

你也可以使用相同的名称发布多个input,并通过将空方括号添加到input名称来保存到数组中,如下所示:

 <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"/> 

如果你使用php:

 print_r($_POST['comment']) 

你会得到这个:

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