将数组从输入标记的“值”属性传递到服务器


pass an array to server from an input tag's "value" attribute

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

  1. 是什么允许 PHP 将"input"的"name"属性读取为 assoc 数组,而不仅仅是字符串?
  2. 如何传递要传递的数组?代码如下。

.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)
                )
        )
)

在 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"/>

如何传递要传递的数组?代码如下。

为此,您的救赎是在对象上创建数组并将其编码/解码为 json 字符串:

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

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

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

查看工作演示