2013-12-13 83 views
-1

嘿我有這樣的jQuery的使用Ajax結合:保存在變量jQuery的

var username = $("#username").val(); 
if(username){ 
    $.ajax({ 
     url: 'check.php', 
     data: {data: JSON.stringify(username)}, 
     type: 'POST', 
     dataType: "json", 
     success: function (data) { 
      if(data.result == 1) { 
       var name = "content"; // SAFE anything in global variable? 
      } 
     } 
    }); 
} else { 
    alertify.error("You forgot to type your username"); 
}  


if(name) {  
    // if global variable is set => do something 
} else {   
    // if not => do something else 
} 

我想檢查data.result = 1,這就是我能想象,如果數據找到的唯一出路。結果返回值爲1

編輯:

我不想通過警報檢查它,因爲我需要在後面用這個全局變量的工作,任何人都可以幫助我與我的問題?問候

編輯:

​​
+0

首先,'var'你定義了一個局部變量;使用全局變量,或者更好地調整某個閉包變量的屬性。其次,AJAX是_asynchoronous_;不要認爲AJAX調用之後的代碼將在執行後執行 - 它不會執行。 – raina77ow

回答

1

阿賈克斯()調用之前聲明一個變量,並給它分配你的成功處理程序中:

var result; 
var username = $("#username").val(); 
if(username){ 
    $.ajax({ 
     url: 'check.php', 
     data: {data: JSON.stringify(username)}, 
     type: 'POST', 
     dataType: "json", 
     success: function (data) { 
      result = data.result; 
     } 
    }); 
} else { 
    alertify.error("You forgot to type your username"); 
} 
+0

我更新了我的代碼,看看,返回的結果是:1,但我仍然「不好」,爲什麼你能解釋我? – user3094856

+0

@ user3094856正如有人在這個問題下評論的那樣,「其次,AJAX是異步的;不要以爲AJAX調用後的代碼會在完成後執行 - 它不會。」 – pvgoran

+0

也就是說,「ok」/「not ok」檢查後,「result」會在稍後的時間分配。 – pvgoran