我有时会在chrome请求标题中看到你可以发回像数组和对象这样的内容,例如,如果我有JSON对象
[
{
"name":"SmartLemon",
"age":17
},
{
"name":"Unknown",
"age":-1
}
]
如果此对象的名称为foo
,则会以这样的方式发回:
foo[0].name = "SmartLemon"
foo[0].age = 17
foo[1].name = "Unknown"
foo[1].age = -1
我不确定那是否完全相同,但它是相似的。
现在假设我在表单中有一个表,其中有很多行使用jquery模板动态添加
如果我设置所有名称
<form method="post">
<table>
<tr>
<td>
<input type="text" value="Fabian" name="foo[0].name"/>
</td>
<td>
<input type="number" value="17" name="foo[0].age"/>
</td>
</tr>
<tr>
<td>
<input type="text" value="Unknown" name="foo[1].name"/>
</td>
<td>
<input type="number" value="-1" name="foo[1].age"/>
</td>
</tr>
</table>
</form>
它会返回相同的吗?它是同一类型的东西?这样做有什么不对吗?或者有更好的方法吗?
答案 0 :(得分:0)
您可以在表单中使用foo[0][name]
代替foo[0].name
,就像下面的
<强> HTML:强>
<form method="post" action="">
<table>
<tr>
<td>
<input type="text" value="Fabian" name="foo[0][name]"/>
</td>
<td>
<input type="number" value="17" name="foo[0][age]"/>
</td>
</tr>
<tr>
<td>
<input type="text" value="Unknown" name="foo[1][name]"/>
</td>
<td>
<input type="number" value="-1" name="foo[1][age]"/>
</td>
</tr>
</table>
<input type="submit" name="sub">
</form>
在服务器端,您可以检索下面给出的项目(foo
将是$_POST
数组中的一个多维数组)
$_POST['foo'][0]['name'] // Fabian
$_POST['foo'][0]['age'] // 17
$_POST['foo'][1]['name'] // Unknown
$_POST['foo'][1]['age'] // -1
例如,使用php
可以循环播放
if(isset($_POST['sub'])){
foreach ($_POST['foo'] as $value) {
foreach ($value as $key => $val) {
echo $key . ' ' . $val . '<br />';
}
}
}
输出
name = Fabian
age = 17
name = Unknown
age = -1