PHP + jQuery getJson返回" Undefined"

时间:2017-06-20 17:22:00

标签: javascript php jquery json

我试图从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;

我被困了,因为总被归还为"未定义"。有谁知道我做错了什么?

1 个答案:

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