如何将一个对象数组从javascript传递给PHP

时间:2011-06-30 10:15:18

标签: php javascript json

如果我在javascript中有类似的内容:

entriesObj1 = new Object();
entriesObj1.entryId = "abc";
entriesObj1.mediaType = 2;
entriesObj2 = new Object();
entriesObj2.entryId = "def";
entriesObj2.mediaType = 1;

var entries = new Array();

entries[0] = entriesObj1;
entries[1] = entriesObj2;

通过HTTP POST将它传递给php的最佳方法是什么?

我尝试过一个jQuery插件将数组转换为JSON。我试图创建多个名为“entries []”的隐藏字段,每个字段都带有JSON字符串。不知何故,我似乎无法用PHP的json_decode解码我的数据。

编辑: 我尝试更改用于指示的@Michal的JSON插件,我得到的结果是相同的:

的Javascript

[
    {"disciplina":"sdfsdfsdfsd","titulo":"sdfsdfsdf","componentes":"Bloco Completo"},
    {"disciplina":"sdfsdfsdfsd","titulo":"sdfsdfsdf","componentes":"Bloco Completo"}    
]

PHP Vardump:

string(756) "
[
    {\"disciplina\":\"sdfsdfsdfsd\",\"titulo\":\"sdfsdfsdf\",\"componentes\":\"Bloco Completo\"},
    {\"disciplina\":\"sdfsdfsdfsd\",\"titulo\":\"sdfsdfsdf\",\"componentes\":\"Bloco Completo\"}
]
"

当我使用PHP的json_decode时,我得到NULL。

var_dump(json_decode($_REQUEST['entries']));

输出:

NULL

3 个答案:

答案 0 :(得分:1)

您需要将JSON转换为字符串(使用JSON字符串(https://github.com/douglascrockford/JSON-js)并将字符串(作为字段值)POST到PHP脚本,该脚本执行json_decode()

答案 1 :(得分:1)

使用_%%等字符对其进行Concat,然后将其传递给PHP。

在PHP文件中:

$ar = array();
$ar = explode('special_char',string pass from js);
echo "pre";print_r($ar);
echo "/pre";

答案 2 :(得分:0)

好吧,问题似乎是在帖子中传递的引号,所以我只是将带有开放字符串的引号替换为我的$ _REQUEST。