将JavaScript对象传递给HIDDEN输入字段,并将其作为服务器端的数组/对象捕获

2 javascript php arrays object hidden-field

我的页面上有一个字段,如下所示:

<input type="hidden" name="myField" id="myField" />
Run Code Online (Sandbox Code Playgroud)

我有一段看起来像这样的代码:

$(document).ready(function() {
    var myObject = {
        item1: 'item1 value',
        item2: 'item2 value',
        item3: 'item3 value',
        item4: 'item4 value',
    };

    $('#myField').val(myObject);
});
Run Code Online (Sandbox Code Playgroud)

当我提交此表单时,我捕获并$_POST使用print_r/var_dump函数输出变量,并为此表单字段(myField)获取以下输出.

[myField] => [object Object]
Run Code Online (Sandbox Code Playgroud)

如何将JavaScript数组/对象抛出到表单字段并在服务器端评估/转换为propper数据类型,所以我可以在我的PHP脚本中得到它:

[myField] => Array(
    item1 => item1 value
    item2 => item2 value
    item3 => item3 value
    item4 => item4 value
)
Run Code Online (Sandbox Code Playgroud)

如何在没有硬编码的情况下实现这一目标?

Fel*_*ing 9

将对象编码为JSON [Wikipedia]:

$('#myField').val(JSON.stringify(myObject));
Run Code Online (Sandbox Code Playgroud)

并使用json_decode [docs]在服务器端对其进行解码.

JSON [文档]对象是可用的最近的浏览器,并且还可以包括作为文库.

  • @Matt:很好的链接:) (2认同)