在返回要由JQuery AJAX访问的Array数据时,我应该使用json_encode()吗?

时间:2010-07-29 15:07:07

标签: jquery

我试图使用JQuery AJAX从cakePHP 1.26中获取从数据库中检索到的一些数据:

 function testing(){
    $user = $this->user->findallbyuser_id("1");
    return $user;
}

这里是cakePHP内置函数Debug($ user)的输出:

Array
(
    [user_id] => 1
    [name] => hello  
)

这是JQuery部分:

  $.ajax({
      type: "POST",
      url: curl,   
      success: function(data){ 
      alert(data); }
});

这是警告信息:

Array <!--0.082-->

后来,我发现在我改变后,警告信息显示了一些不同之处 代码:

 function testing(){
    $user = $this->user->findallbyuser_id("1");
    return json_encode($user);
}

以下是Alert消息框中的新输出:

{"user_id":"1","name":"hello"}<!--0.0953-->

但我不知道如何以这种方式打印出从JQuery AJAX返回的数据:

User ID: 1
User name: hello

1 个答案:

答案 0 :(得分:3)

JSON可以被认为只是一个用于JavaScript的PHP数组(严格来说不是这样,但它有助于理解)。

因此,要获得user_id的值,我们会执行以下操作

$.ajax({
    type: "POST",
    url: curl,   
    success: function(data) { 
        alert(data.user_id); 
    }
});

注意我们如何简单地附加.user_id,因为这是JSON数组中的密钥名称。

当PHP脚本返回JSON编码数组时,jQuery.ajax将其拾起并将其弹出到我们通过success: function(data){}定义的数据变量中