AJAX:如何将对象返回给jquery?

时间:2010-12-27 03:19:20

标签: php jquery ajax json

我想知道我是否可以将对象从json_encode()返回给JQuery。如果我要这样做......

$.ajax({
   type : 'POST',
   url  : 'next.php',
   dataType : 'json',
   data     : { nextID : 2 },
   success  : function ( data ) {

            // do something with data.myObject.memberVariable

          },
      error    : function ( XMLHttpRequest, textStatus, errorThrown) {

           //  didn't work!

      }
});     

AND this(next.php)

<?php

include_once('myClass.php');

$myObj = getMyObject( $_POST['nextID'] );  // get an object

$return['myObject'] = $myObj;

echo json_encode($return);

?>

现在我已经测试了这种方法,但每当我尝试data.myObject.memberVariable时,我得到的只是[object Object]。我怎样才能真正访问对象的变量?希望上面的代码有助于解释我的问题:(

5 个答案:

答案 0 :(得分:4)

这个怎么样?

 echo json_encode($return['myObject']);

你是否退回了json标题?

答案 1 :(得分:1)

您的memberVariable包含一个对象 要查看原始数据,请查看对象属性:

alert(data.myObject.memberVariable.someProperty);

答案 2 :(得分:1)

也许在json_encode上解析$ myObj

答案 3 :(得分:1)

一些指示/问题:

  1. 你应该做一个 print_r($myObj)确保这一点 您的对象有效且有效 数据成员。 memberVariable是一个 像SLaks指出的对象本身, 这就是你得到的原因 [object Object]
  2. 在运行$return之后回显json_encode()并检查JSON响应是否有效,以及您要查找的成员变量是否正确。 JSONLint可以格式化您的JSON以便于阅读。
  3. getMyObject()怎么样 功能工作?当你回声 $myObj->m_url会回来 什么?
  4. 最后,您可能需要安装 Firebug如果您正在使用 Firefox或Inspector if 你正在使用Webkit浏览器,和 请使用console.log(object) 而不是使用alert(object)。这样可以让您更深入地查看对象,而不是[object Object]

答案 4 :(得分:1)

在JQuery成功函数中尝试:

alert(data.ObjectProperty);

您可以使用句点(。)来访问对象的属性。