我有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”
答案 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);
}
});