作者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