javascript - PHP + jQuery getJson 返回 "Undefined"

标签 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;

我陷入困境,因为总计返回为“未定义”。有谁知道我做错了什么?

最佳答案

问题出在 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/

相关文章:

javascript - JQuery .html() 问题

php - 具有两个操作的提交按钮

javascript - 如何在javascript React中找到两个对象数组之间的所有交集?

javascript - 随机几秒后更改框颜色

php - 如何在 yii2 中使用 Swift_Plugins_AntiFloodPlugin

javascript - 无法使用 PHP 上传文件夹内的文件

javascript - CSS下拉菜单的奇怪行为

javascript - 在 Javascript 中解压半精度 float

javascript - 在node-express应用程序中使用node-mysql建立共享连接

php - 如何将 "natural join"转换为 yii2 Active 查询?