AJAX,作为答案获取对象

时间:2012-08-01 15:28:53

标签: php ajax json

我有2个php文件:索引和页面。在index.php中我写了一个ajax / jquery代码:

$(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);

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

3 个答案:

答案 0 :(得分:1)

json_encode()函数就是这样......将数据编码为JSON。 JSON不是javascript对象,它是javascript对象的符号。要将其用作对象,您需要先解析它:

mas = JSON.parse(htm);

然后您可以访问以下值:

alert(mas.a);

答案 1 :(得分:1)

添加:

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

到PHP脚本的顶部。

您的JSON数据被视为HTML字符串,而不是充当JavaScript对象。

答案 2 :(得分: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);         
    }
});