2012-05-01 8 views
0

を働いていない私は、このコードのビットがあります:何かが間違っている場合jQueryのポストデータのリターン比較

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エコーの「×」。

remindme.phpの出力を比較しようとしていますが、xがエコーしても、data == "x"という条件は機能しません。

私はalert(data)を追加し、私は必要なときに適切にxを表示見ることができます。..

+0

は( ' " '+ X +'"') '警告をしてみてください'。すべての空白? – ori

+0

@ori nope、空白なし。 return "x" –

+0

'alert(typeof data);'の出力は何ですか? –

答えて

1

サーバーは、成功コールバック関数の内部if (data == 'x')テストが動作するはず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; 
    }