作者kucal (静...)
看板Ajax
标题[问题] Function内变数问题
时间Wed Mar 21 17:18:16 2012
小弟的code大致如下
myjs.js
function getID(){
var id;
$.ajax({
url: 'control.php',
type: 'POST',
dataType: 'text',
data: {act: 'add'},
error: function(res){
id = -1; //这边的id为integer
},
success: function(res){
id = parseInt('0'+res,10); //这边的id为integer
}
});
return id; //在这边 id变成undefined
}
爬文看到板上的大大有人提到可使用全域变数来解决问题
但有其它的方式可将 return id那边的值 抓到上面funcion中的存入值吗??
在此先谢谢各位大大的指点~
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 163.22.18.32
1F:推 akiratw:你的AJAX还没走完就先return了,所以才会 undefined 03/21 17:20
2F:推 akiratw:多传个 function 进去 getID() 当作 callback 执行吧 03/21 17:23
3F:→ akiratw:不然就把 AJAX 改成非同步... $.ajax({ async: false ... 03/21 17:24
4F:→ kucal:原来如此 谢谢大大指点 03/21 17:28
5F:推 s25g5d4:我记得之前用非同步AJAX 结果後端回应比较慢 03/21 20:31
6F:→ s25g5d4:浏览器在等後端传回资料时就卡在那里不能动 03/21 20:32
7F:→ s25g5d4:资料传到了才可以动... 03/21 20:32
8F:推 aiyswu:用Deferred Object不推荐用async: false 03/30 19:25