大家好我已经得到了这段代码,但它一直在踢'undefined;
var projectID = $.getUrlVar('id');
var projectname;
$.get('functions.php?func=projectname&id='+projectID, function(data) {
projectname = data;
alert(projectname+'<- see nice content');
});
alert(projectname+'<- no content :(');
如何在一个获取功能之外使“projectname”可用?
(我注意到,当实际运行该代码时,在好内容之前弹出无内容警报。是.get是运行页面上的最后一件事吗?这就是为什么它全部空白?因为变量不是似乎已经确定了?
感谢
答案 0 :(得分:5)
AJAX以异步方式运行(这是A
首字母缩略词中的第一个AJAX
代表的。
所以你有两个解决方案可以解决你的问题:
$.get
更改为$.ajax
并将其async
选项设为false(可怕的解决方案)答案 1 :(得分:2)
这里的问题是你的第二个警报实际上是在AJAX请求完成之前执行的。
“AJAX”中的“A”代表异步。
任何依赖于从AJAX请求返回的数据的功能都只能在success
回调中实现或调用
答案 2 :(得分:0)
因为XHR是异步的,所以你不能那样。
将所有代码作为后代函数处理,更深入地在callstack上,源自完整的回调(其中projectname
将分配正确的值)。