2013-03-22 46 views
0

我有以下代碼,但問題是當我嘗試使用從PHP檢索值(getstate)設置條件語句時,它通過if語句甚至它不匹配。例如,如果響應爲1,則getstate爲1,但它會在getstate爲2時執行代碼。出現什麼問題?操縱從條件語句不工作的迴應

var getstate =""; 
    $.get('getstate.php', { 
        email: emailaddress, 
        country: 'DE', 
        lang: lang, 
        source: '1304_Spring_dly' 
       }, function (data) { 

      getstate = data; 

    if (getstate = "2"){ 

     $('#mch-overlay').fadeIn(300); 

       } else if (getstate = "1"){ 
        $('#mch-overlay').fadeIn(300); 
        }); 

       } else { 
        $('p.error').hide(); 
         } 

      }); /*end .GET */ 

回答

1

條件語句需要=====,只使用=套值,通常修整值,以確保沒有空格是一個好主意:

$.get('getstate.php', { 
      email : emailaddress, 
      country: 'DE', 
      lang : lang, 
      source : '1304_Spring_dly' 
    }, function (data) { 
      var getstate = $.trim(data); 
      if (getstate == "2"){ 
       $('#mch-overlay').fadeIn(300); 
      } else if (getstate == "1"){ 
       $('#mch-overlay').fadeIn(300); 
      } else { 
       $('p.error').hide(); 
      } 
}); 

還要注意的是在條件中做同樣的事情,所以它可能已經縮短到只是/否。

+0

謝謝你,你說得對!有沒有一種方法可以在該函數之外使用變量getstate?我試過了,它總是空着。 – user1937021 2013-03-22 20:12:05

+0

這是因爲ajax是異步的,所以你不能指望變量在ajax調用完成之前被設置,這就是爲什麼完整的回調在那裏。 – adeneo 2013-03-22 20:15:06

+0

你知道我該怎麼做嗎?像你說的那樣使用回調? – user1937021 2013-03-22 20:15:49