2012-05-01 29 views
0

我有這段代碼:jQuery的POST數據回報比較不工作

function addEmail() { 
      email = $("#email").val(); 
      atime = $("select#time").val(); 
      tid = <?= $tid; ?>; 
      $.post("remindme.php", { email: email, time: atime, tid: tid }, 
       function(data) { 
        if (data == "x") { 
         alert(data); 
         $('#remindme').modal('hide'); 
         $('#quota').show(); 
        } 
        else { 
         alert(data); 
         $('#remindme').modal('hide'); 
         $('#remindersuccess').show(); 
        } 
       }); 
      } 

remindme.php回聲的「X」,如果事情是錯誤的。

我想比較從reminme.php的輸出,但即使它回聲的x,條件data == "x"不起作用。

我加入alert(data),我可以看到它正確顯示需要的時候x ..

+0

嘗試'警報( ' '+ X +''「)'。任何空格? – ori

+0

@ori nope,沒有空格。返回「x」 –

+0

「alert(typeof data)」的輸出是什麼;'? –

回答

1

如果服務器相呼應的x字符串,則成功回調內部if (data == 'x')測試應該工作。你的問題在別的地方。

1

也許已經晚了。我面臨着同樣的問題,我解決了非常愚蠢的解決方法(適用於您的代碼):

function(data) { 
    var server_info = data; 
    if (server_info == "x") {      
     $('#remindme').modal('hide'); 
      $('#quota').show(); 
    } else { 
     $('#remindme').modal('hide'); 
     $('#remindersuccess').show(); 
    } 
} 

我不知道爲什麼:/

希望它能幫助。

1

我也許有同樣的問題,我固定它是這樣的:

var verify = function (user,fName,fPass) { 
     var result = ""; 
     $.ajaxSetup({async:false}); 
     $.post("php_scripts/verify"+user+".php",{login:fName, pass:fPass},function (data) { 
      result = $.trim(data); // use $.trim when are you using "data" 
     }); 
     return result; 
    }