从后端 PHP 脚本将变量作为二维 JSON 数组检索后,我遇到了变量范围的问题。这是我的代码:
var qns, qis, ncs, nzs, tps;
function get_questions() {
var url = "php/pytania.php";
$.ajax({
cache: false,
type: "GET",
dataType: "text",
url: url,
success: function(response) {
data = jQuery.parseJSON(response);
qns = data.qns;
qis = data.qis;
ncs = data.ncs;
nzs = data.nzs;
tps = data.tps;
}
});
}
$(document).ready(function() {
var index = 0;
get_questions();
$("#question_no").text(qns[index]);
});
当我最终尝试引用我的 qns 数组时,它显示变量未定义错误。然而它在 ajax 语句中工作 - 没有问题......
谢谢并保重! :)
Piotr.
问题是 success 方法被异步调用 - 这意味着在调用 $().ajax 并尝试引用该变量后,它尚未被分配,因为 success 回调方法尚未执行。
这可以通过将 async 选项设置为 false 来解决,如下所示:
$.ajax(
{
/* this option */
async: false,
cache: false,
type: "GET",
dataType: "text",
url: url,
...
这意味着在收到响应之前,ajax 调用之后不会执行任何其他操作。另一种方法是将代码放置在成功回调方法本身中需要使用数组的位置。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)