从没有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' )