1

我有 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”

4

3 回答 3

1

json_encode()函数就是这样做的……将数据编码为 JSON。JSON 不是 javascript 对象,它是 javascript 对象的表示法。为了将其用作对象,您需要首先对其进行解析:

mas = JSON.parse(htm);

然后您可以访问以下值:

alert(mas.a);
于 2012-08-01T15:31:40.423 回答
1

添加:

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

到 PHP 脚本的顶部。

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

于 2012-08-01T15:33:27.337 回答
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);         
    }
});
于 2012-08-01T15:34:08.540 回答