【问题标题】:How to send a PHP array via HTML form (using input tag)如何通过 HTML 表单发送 PHP 数组(使用输入标签)
【发布时间】: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 是一个类似上面的数组。

标签: php html arrays


【解决方案1】:

最简单的方法是将您的类别数组转换为 JSON 格式并返回。

echo '<input type="hidden" name="category" value="' . json_encode($category) . '" />';

...当您发送表单时,将 JSON 解析回数组:

$category = json_decode($_GET["category"]);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-07-25
    • 2018-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多