我正在尝试从 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;
我陷入困境,因为总计返回为“未定义”。有谁知道我做错了什么?
最佳答案
问题出在 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;
});
关于javascript - PHP + jQuery getJson 返回 "Undefined",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44659415/