【问题标题】:AJAX json data does not print in PHPAJAX json 数据不会在 PHP 中打印
【发布时间】:2012-08-22 14:51:19
【问题描述】:

我在 Javascript 中有一个 JSON 数据,使用 JSON.stringify 制作表单数组

{
   "user":"Mark",
   "id":"80",
   "0":["age","=","twenty four","varchar"],
   "1":["prefix","=","Mr.","enum"]
}

我通过 AJAX 将其发送到 PHP 文件。当我回显 POST 时,我得到了值

echo (serialize($_POST['data']));

s:263:
"{
    "user":"Mark",
    "id":"80",
    "0":["age","=","twenty four","varchar"],
    "1":["prefix","=","Mr.","enum"]
 }";

如何在数组或对象中获取 POSTed 数据。我已经试过了

var_dump(json_decode($_POST['data']));

var_dump(json_decode(序列化($_POST['data']))); 和 var_dump(json_decode($_POST['data'],true));

但他们没有工作。输出为空。

【问题讨论】:

  • 你确定这就是你的全部输入吗? Seem to be working fine 给我。
  • 打印 $_POST['data'] 给我 > {"user":"Mark","id":"80","0":["age","!=", "二十四","varchar"],"1":["prefix","=","Mr.","enum"]}
  • 当 var_dump(json_decode($_POST['data']));给我空

标签: php javascript arrays json


【解决方案1】:

json_decode() 应该可以为您解决问题,但取决于您的服务器配置(如果magic_quotes_gpc 已打开),您可能需要在解码之前使用stripslashes()

【讨论】:

    【解决方案2】:

    如果您的 PHP 版本 >=5.2.0,您可以使用以下内置 PHP 函数来解码 JSONS

    json_decode($_POST['data'])
    

    它返回 Array 和 StdClass 对象。

    编辑:您是如何发现 json_decode 不起作用的。请尝试 ver_dump 或 print_r。希望你的 PHP 版本 >=5.2.0

    【讨论】:

      【解决方案3】:

      你必须把它存储到某个东西上。

      $posted = json_decode($_POST['data']);
      var_dump($posted);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-07-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多