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


How to pass an array of objects from javascript to PHP

如果我在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;

通过HTTPPOST将其传递给php的最佳方法是什么?

我尝试了一个jQuery插件来将数组转换为JSON。我尝试创建多个名为"entry[]"的隐藏字段,每个字段都带有JSON字符串。不知怎么的,我似乎无法用PHP的json_decode解码我的数据。

编辑:我尝试将使用的JSON插件更改为@Michal指示的插件,结果相同:

Javascript

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

PHP Vardump:

string(756("[{''"strictina''":''"sdfsdfsdfsd''",''"titulo''":"sdfsdfsdf''","componentes''":"Bloco Completo''"},{''"strictina''":''"sdfsdfsdfsd''",''"titulo''":"sdfsdfsdf''","componentes''":"Bloco Completo''"}]">

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

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

输出:

NULL

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

使用一些字符(如_%%(对其进行拼接,然后将其传递给PHP。

在PHP文件中:

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

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