3 回答
TA贡献1909条经验 获得超7个赞
否。仅最后一个输入元素可用。
如果要使用相同名称的多个输入,请使用name="foo[]"输入名称属性。$_POST然后将包含foo的数组,其中包含来自输入元素的所有值。
<form method="post">
<input name="a[]" value="foo"/>
<input name="a[]" value="bar"/>
<input name="a[]" value="baz"/>
<input type="submit" />
</form>
请参阅Sitepoint上的HTML参考。
$_POST如果不使用[]则仅包含最后一个值的原因是因为PHP基本上只会爆炸并遍历要填充的原始查询字符串$_POST。当遇到已经存在的名称/值对时,它将覆盖前一个。
但是,您仍然可以像这样访问原始查询字符串:
$rawQueryString = file_get_contents('php://input'))
假设您具有这样的形式:
<form method="post">
<input type="hidden" name="a" value="foo"/>
<input type="hidden" name="a" value="bar"/>
<input type="hidden" name="a" value="baz"/>
<input type="submit" />
</form>
rawQueryString然后$ 将包含a=foo&a=bar&a=baz。
然后,您可以使用自己的逻辑将其解析为一个数组。天真的方法是
$post = array();
foreach (explode('&', file_get_contents('php://input')) as $keyValuePair) {
list($key, $value) = explode('=', $keyValuePair);
$post[$key][] = $value;
}
这将为您提供查询字符串中每个名称的数组数组。
TA贡献1865条经验 获得超7个赞
除了在PHP中name="nfo[val]"使用外name="nfo[val][]",还可以使用foreach()
HTML代码:
<form method="post">
<input name="nfo[val][]" value="val1"/>
<input name="nfo[val][]" value="val2"/>
<input name="nfo[val][]" value="val3"/>
<input type="submit" />
</form>
PHP代码:
$output='';
foreach ($nfo['val'] as $key=>$val) {
$output.= $val.", ";
}
$output 将会: val1, val2, val3
希望这可以帮助!
TA贡献1866条经验 获得超5个赞
您必须创建它们的数组:name=inputname[] 与post,request或get一起使用
$inputs = $_POST['inputname'];
print_r($inputs);
- 3 回答
- 0 关注
- 265 浏览
添加回答
举报