【问题标题】:Returning json data from php to ajax将json数据从php返回到ajax
【发布时间】:2015-11-01 23:59:56
【问题描述】:

我正在尝试从 php 获取一个 json 对象,以便可以在 ajax 中使用它。这是我的ajax代码:

 $.ajax({
   type: 'get',
   url: eventsListPath,
   dataType : "json",
   data: {},
   success: function (data) {
       $('#eventInformation').html(data.table);
       alert(data.table);
   }
});

还有我的 PHP:

$obj->table="hey";
echo json_encode($obj, JSON_UNESCAPED_SLASHES);

但是行

alert(data.table);

返回“未定义”。有什么想法吗?

【问题讨论】:

  • success 中尝试console.log(data)。告诉我结果。

标签: javascript php jquery ajax json


【解决方案1】:

在你的 php 代码中试试这个。 Json 编码一个数组。

$obj['table']="hey";
echo json_encode($obj, JSON_UNESCAPED_SLASHES);

Alternate - 或者你的班级应该是这样的

class your_classname
{
  public $table;
 //other class related code
}
$obj = new your_classname;

$obj->table="hey";
echo json_encode($obj, JSON_UNESCAPED_SLASHES);

【讨论】:

  • 如果代码对您有帮助,请务必将我的答案标记为正确。谢谢@Steven Jacks
【解决方案2】:

如果我没记错的话,json_encode 只适用于数组

$obj = [{table:"hey"}];

【讨论】:

    【解决方案3】:
    <?php
    $obj = new stdClass();
    $obj->table="hey";
    echo json_encode($obj)
    

    生产

    {“桌子”:“嘿”}

    使用 Firebug 检查它。还要检查内容类型,应该是Content-Type: application/json

    【讨论】:

      【解决方案4】:

      您必须将 array 传递给 json_encode 而不是对象

      <?php
      $array['table'] = "hey";
      echo json_encode($array, JSON_UNESCAPED_SLASHES);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-02-22
        • 2013-04-10
        • 2011-01-25
        • 2011-09-30
        • 1970-01-01
        • 2021-11-29
        相关资源
        最近更新 更多