将数组从输入标记传递给服务器" value"属性

时间:2014-12-20 16:19:30

标签: php html post

我试图通过指向关联数组中的数组的键传递& _POST,并尝试将数组放入" name" "输入"中的属性标签。它没有用,它作为字符串传递给服务器。这给了我两个问题:

  1. 允许PHP阅读"名称"属性"输入"作为一个关联数组而不仅仅是一个字符串?
  2. 我如何通过我想要通过的数组?代码如下。
  3. HTML:

    <input type="hidden" id="options[field_name_swap][gallery_id]" name="options[field_name_swap][gallery_id]" value="['galleries', 'name']"/>
    

    下面的代码正是我想要的(只是没有数组作为字符串):

    Array
    (
        [tables] => Array
            (
                [stock_details] => Array
                    (
                        [print_id] => 4
                        [gallery_id] => 3
                    )
    
            )
    
        [options] => Array
            (
                [field_name_swap] => Array
                    (
                        [gallery_id] => ['galleries', 'name'] //these lines (1)
                        [print_id] => ['prints', 'photo_id'] // (2)
                    )
    
            )
    
    )
    

2 个答案:

答案 0 :(得分:3)

在php中,数组中的每个值都需要在自己的字段中

<input type="hidden" id="options[field_name_swap][gallery_id][0]" name="options[field_name_swap][gallery_id][0]" value="galleries"/>
<input type="hidden" id="options[field_name_swap][gallery_id][1]" name="options[field_name_swap][gallery_id][1]" value="name"/>

答案 1 :(得分:2)

  

如何通过我想通过的数组?代码如下。

为此你的救赎是在对象上制作数组并将其编码/解码为json string:

$json = json_encode($array_given);
echo "<input type='hidden' name='array' value='{$json}' />";

现在在接收脚本中,您只需解码给定数据:

$array = json_decode($_POST['array']);

请参阅working demo