2012-08-01 68 views
1

我有2个PHP文件:索引和页面。在我的index.php写AJAX/jQuery代码:AJAX,作为答案获得对象

$(document).ready(function() { 
     var mas; 
     $.ajax({ 
      url: "page.php", 
      type: "POST", 
      data: "a=aaa&b=bbb", 
      success: function (htm) { 
       mas = htm; 
       alert(htm);   
      } 
     }); 


     $(document).on("click", function() { 
      alert(mas['a']); 
     }); 


    }); 

在page.php文件我只有这样的代码:

echo json_encode($_POST); 

数据成功地发送,因为我在警报消息获得:{ “一个” : “AAA”, “b”: “BBB”}。 当我点击文档时,警告:“未定义”,请告诉我,我错在哪里? 我想告诉“aaa”

+0

我认为它可能超出了变量的范围,但我不是100%确定的。 – Matt 2012-08-01 15:32:42

回答

1

json_encode()函数,就是这样......将数据编码为JSON。 JSON不是JavaScript对象,它是对于JavaScript对象的表示法。为了使用它作为一个对象,你需要首先分析它:

mas = JSON.parse(htm); 

然后你就可以访问诸如值:

alert(mas.a); 
+0

O,非常感谢,理解 – 2012-08-01 15:33:53

1

地址:

header('Content-type: application/json'); 

到顶部PHP脚本。

您的JSON数据被当作一个HTML字符串处理,而不是被充入JavaScript对象。

1

您需要告诉jQuery从AJAX调用中解析JSON。为此,请将dataType: 'json'添加到$.ajax

$.ajax({ 
    url: "page.php", 
    type: "POST", 
    data: "a=aaa&b=bbb", 
    dataType: 'json', 
    success: function (htm) { 
     mas = htm; 
     console.log(htm);   
    } 
});