我试图从PHP脚本中访问JSON对象,如下所示:
$results = array(
'total' => $all_totalf,
'error' => $all_errorsf,
);
echo json_encode($results);
JSON对象如下所示:
{"total":"11,644","error":"179"}
然后我有一个看起来像的jQuery脚本:
var url = "get_control_data.php";
var total;
$.getJSON(url, function (data) {
var total = data.total;
});
document.getElementById("total").innerHTML = total;
我被困了,因为总被归还为"未定义"。有谁知道我做错了什么?
答案 0 :(得分:1)
问题在于getJSON回调中的这一行:
var total = data.total;
此处var
声明一个名为total
的新变量,该变量仅限于回调函数。移除var
,您的代码将在外部作用域中设置total
var。
这只能部分解决你的问题。另一个问题是外部代码同步执行,而回调代码将在外部代码完成后的某个时间异步执行。这意味着这一行:
document.getElementById("total").innerHTML = total;
在从URL读取总值之前运行。可能最简单的方法就是将代码移到回调中,即:
$.getJSON(url, function (data) {
document.getElementById("total").innerHTML = data.total;
});