2013-03-22 45 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