如何通过 HTML 表单发送 PHP 数组(使用输入标签)

Cal*_*ann 1 html php arrays

我想在输入表单元素中发送一个数组。

我的阵列:

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)

Gen*_*his 5

最简单的方法是将您的类别数组转换为 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)