我正在尝试从名为return的php文件中检索数据,该文件只包含
<?php
echo 'here is a string';
?>
我是通过包含
的html文件来完成的<!DOCTYPE html>
<html>
<head>
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<script>
var x;
$.get("return.php", function(data){
x = data;
})
function showAlert() {alert(x);}
$(document).ready(function(){
alert(x);
});
</script>
</head>
<body>
<input type = "button" value = "Click here" onClick="showAlert();">
</body>
</html>
单击该按钮时,它会检索并显示代码,但在$(document).ready事物上,它会显示“undefined”而不是return.php中的数据。任何解决方案?
感谢。
答案 0 :(得分:4)
document.ready在$ .get返回msg之前运行
var x;
function showAlert() {alert(x);}
$(document).ready(function(){
$.get("return.php", function(data){
x = data;
showAlert();
})
});
应该可以正常工作
答案 1 :(得分:2)
ajax可能尚未加载。
var x;
function showAlert() {alert(x);}
$(document).ready(function(){
$.get("return.php", function(data){
x = data;
alert(x);
});
});
答案 2 :(得分:2)
这不是范围问题,而是事件顺序问题。 $.get
是一个异步调用,所以当你的页面在浏览器中加载时它可能还没有完成(它是一个相当小的页面,所以我想它加载得很快)。