我正在尝试将输入值分配给我使用数据库中的JSON / PHP检索的变量。每次我输出它时都会得到一个空白/空值。
我在javascript文件的顶部创建了全局变量:
var theAge=0;
function startApplication(){
getData();
getAge();
alert(theAge);
}
function getData(){
$.getJSON('http://www.myphpfile.co.uk/myfile.php', function(data) {
$.each(data, function(key, val) {
$("#userAge").val(val.age);
});
});
}
function getAge(){
theAge = document.getElementById('#userAge').value;
}
所以我创建变量theAge,从数据库中获取数据并将其显示在输入字段中,然后尝试使用getAge函数获取输入值,然后提醒它检查其工作情况。我刚刚得到一个空白框。谁能看到任何错误?感谢。
答案 0 :(得分:2)
$.getJSON
是对远程URL的异步调用,这意味着在获取响应时脚本会继续该行。
当您的脚本到达getAge();
和alert(theAge);
时,响应尚未返回,因此theAge
仍为0。
无论您想要从远程调用获得的值如何,都需要作为回调函数传递。您已经在那里传递了一个函数(function(data) { $.each...
) - 需要处理您需要对该响应执行的其他操作(例如,getAge()
并警告该值)在那里。
<强>更新强>
分配值并在回调中提醒它:
$.getJSON('http://www.myphpfile.co.uk/myfile.php', function(data) {
$.each(data, function(key, val) {
$("#userAge").val(val.age);
});
theAge = document.getElementById('userAge').value;
alert(theAge);
});