我的表单有点复杂,我希望通过本地发布一个元组数组来简化服务器端(PHP)处理。
表单的第一部分代表一个User:
- 名字
- 姓
- 电子邮件
- 地址
- 等等
表单的第二部分代表一棵树:
- 水果
- 高度
- 等等
问题是我需要能够以相同形式为单个用户发布多棵树。我想以树的数组作为单个用户发送信息,但这对于表单而言可能太复杂了。唯一想到的是使用javascript使用User对象和Tree对象数组创建一些JSON消息。但最好避免使用javascript支持更多用户(某些人已关闭脚本)。
我的表单有点复杂,我希望通过本地发布一个元组数组来简化服务器端(PHP)处理。
表单的第一部分代表一个User:
表单的第二部分代表一棵树:
问题是我需要能够以相同形式为单个用户发布多棵树。我想以树的数组作为单个用户发送信息,但这对于表单而言可能太复杂了。唯一想到的是使用javascript使用User对象和Tree对象数组创建一些JSON消息。但最好避免使用javascript支持更多用户(某些人已关闭脚本)。
Answers:
<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'
)
)
)
tree[tree 1][fr ui_t]
tree[tree.1][fru:it]
tree[tree@1][fru,it]
_是键命名中唯一安全的分隔符吗?
tree[][fruit]
和tree[][height]
无效自动索引数组?
new formData($("form")[0])
,jQuery$("form").serializeArray()
都name="tree[tree1][fruit]"
以字符串形式返回
.serialize()
或.serializeArray()
您还可以发布多个具有相同名称的输入,并通过在输入名称中添加空方括号来将它们保存到数组中,如下所示:
<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' )