【发布时间】:2019-07-21 18:27:28
【问题描述】:
我想在输入表单元素中发送一个数组。
我的数组:
Array( [0] => 55 [1] => 1 [2] => 4 )
HTML <input> 标签:
<input type="hidden" name="category" value="'.$category.'" />
这是我的代码生成的 URL:
http://localhost/search?&category%5B%5D=55&category%5B%5D=1&category%5B%5D=4
但我也收到了这个 PHP 通知:
PHP注意事项:数组到字符串的转换
如何通过 HTML 表单正确发送数组?
=============================
我找到了这个解决方案:
foreach ($category as $item) {
echo '<input type="hidden" name="categories[]" value="'.$item.'" />';
}
准备你的数组$category。示例:
echo '<div align="center">
<form method="GET" action="/search" />
<input type="hidden" name="search" value="'.$search.'" />';
foreach ($category as $item){
echo '<input type="hidden" name="categories[]" value="'.$item.'" />';
}
echo '<input type="submit">
</form>
</div>';
得到:
if(isset($_GET['categories'])) {
$categories = $_GET['categories'];
}
【问题讨论】:
-
将数组转换为 JSON 并将其发送到您的服务器可能是更好的方法。
-
我可以使用
serialize()和unserialize()? -
@polyman 感谢您发布您找到的解决方案。如果你能把它写成一个解释它的答案,那就更好了。
-
这取决于数组,但在这个例子中,foreach 突出,如您所见。
$ category是一个类似上面的数组。