如果我在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的开放字符串替换了引号。