2015-09-29 73 views
0
//From other function 
var check = check_abc(a,b,c); 
alert (check); 


function check_abc(a,b,c) 
{ 

    $.ajax({ 
    type: "POST", 

    url: "abc.php", 

    data: { a: a, 
      b: b, 
      c: c 
     }, 

    success:function(data) { //alert to get the data and make sure it was return ok. 
     if(data == "OK") 
     { 
      window.alert("YEA"); 
      goOn(); 
     } 
     else 
     { 
      window.alert("Testing"); 
      noGood(); 
     } 
    } 
}); 

} 

事件雖然返回「OK」(使用alert來檢查之前),但無論它從不顯示alert(「YEA」),它爲什麼如此?數據似乎不能比較在ajax中無法比較

+0

set ** console.log(data)**成功方法的下一行。 –

+0

什麼都沒有出來 – yan

+0

你的數據方法不會返回任何值,爲什麼數據==「OK」返回false並且代碼去其他方法。首先檢查你的服務器響應爲什麼你沒有好或別的東西。 –

回答

0

這是因爲你(正確)使用異步AJAX調用。當您致電check_abc(a,b,c)時,它會立即返回一個未定義的值,因爲服務器的響應會晚一些。

簡化您的調用代碼如下:

//From other function 
check_abc(a,b,c); 

而且success功能本身內,顯示該對話框(當你從服務器的響應將發生):

success:function(data) { //alert to get the data and make sure it was return ok. 
    var displayBoolean = date === "OK"; 
    alert(displayBoolean); 
} 
+0

它不工作..我想用另一種方法,但再次卡住。幫我檢查(我已經更新了這個問題)。謝謝 – yan

0

AJAX是異步的,爲什麼你不能得到價值

這樣的嘗試

success:function(data) { //alert to get the data and make sure it was return ok. 
     if(data == "OK") 
      {catchVal("OK");return true; } //tried check == true; still cannot 
     else 
      {catchVal("Error");return false;} 
    } 

function catchVal(val){ 
alert(val); 
} 
+0

不要從'success'函數返回任何東西(因爲你說它是異步的)。 –

+0

我從成功部分調用了catchVal函數,並且在響應來自服務器之後調用 –

+0

正確,但您仍然無法從'success'函數返回任何內容。 –

0
$.ajax({ 
    type: "POST", 

    dataType: "text", 
    url: "abc.php", 

    data: { a: a, 
      b: b, 
      c: c 
     }, 

    success:function(data) { 

     var result = $.trim(data); 

     if(result == "OK") 
     { 
      window.alert("YEA"); 
      goOn(); 
    } 
     else 
     { 
      window.alert("Testing"); 
      noGood(); 
     } 
+0

您的預期輸出是什麼請告訴我們? –

+0

預期的輸出是彈出框出現「YEA」時數據返回「OK」,否則出現「測試」 – yan

+0

你可以粘貼你的console.log輸出,放到成功方法裏面。 –