【问题标题】:How to pass an array of objects from javascript to PHP如何将一组对象从 javascript 传递到 PHP
【发布时间】:2011-06-30 10:15:17
【问题描述】:

如果我有,在 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 解码我的数据。

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

Javascript

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

PHP 转储:

字符串(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']));

输出:

【问题讨论】:

标签: php javascript json


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    使用 _%% 等字符连接它,然后将其传递给 PHP。

    在 PHP 文件中:

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-08-16
        • 2013-02-28
        • 1970-01-01
        • 2021-01-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-03-19
        相关资源
        最近更新 更多