我想在输入表单元素中发送一个数组。
我的阵列:
Array( [0] => 55 [1] => 1 [2] => 4 )
Run Code Online (Sandbox Code Playgroud)
HTML<input>标签:
<input type="hidden" name="category" value="'.$category.'" />
Run Code Online (Sandbox Code Playgroud)
这是我的代码生成的 URL:
http://localhost/search?&category%5B%5D=55&category%5B%5D=1&category%5B%5D=4
Run Code Online (Sandbox Code Playgroud)
但我也收到了这个 PHP 通知:
PHP 注意:数组到字符串的转换
如何正确通过 HTML 表单发送数组?
============================
我找到了这个解决方案:
foreach ($category as $item) {
echo '<input type="hidden" name="categories[]" value="'.$item.'" />';
}
Run Code Online (Sandbox Code Playgroud)
准备您的阵列$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>';
Run Code Online (Sandbox Code Playgroud)
并得到:
if(isset($_GET['categories'])) {
$categories = $_GET['categories'];
}
Run Code Online (Sandbox Code Playgroud)
最简单的方法是将您的类别数组转换为 JSON 并返回。
echo '<input type="hidden" name="category" value="' . json_encode($category) . '" />';
Run Code Online (Sandbox Code Playgroud)
...当您发送表单时,将 JSON 解析回数组:
$category = json_decode($_GET["category"]);
Run Code Online (Sandbox Code Playgroud)