2012-04-15 9 views
1

私はAJAXコールバックでIF条件とここに小さな問題を抱えていますで動作していない:Javascriptの条件は、AJAXコールバック

$.ajax(
     { 
      type: "POST", 
      url: "AjouterAttribut.php", 
      data: { val: Valeur, table: Attribut } 
     }).done(function(message) 
     { 
      if (message == '-') 
      { 
       alert("test"); 
      } else { 
       alert(message); 
       var Tableau = jQuery.parseJSON(message); 
       $this.prev().find('option').remove(); 

       for (var i=0; i< Tableau.length; i++) 
       { 
       $this.prev().append("<option value="+ Tableau[i][0] +">" + Tableau[i][1] + "</option>"); 
       } 
      } 
     }); 

問題は、Ajaxの機能を送り返していたときに「 - 」メッセージに、 ifをelseの直前に通し、 ' - 'を警告します。何が起こっている?

+0

代わりに、私は警告メッセージを表示するときに、phpファイルで '0'をエコーし​​てみましたが、明らかに0を表示しますが、警告を出すと(メッセージ== '0')); FALSEを警告します。 – Sefam

+0

私は整数として0をエコーし​​、メッセージ== 0を比較しようとすると、それは動作しますが、それは文字列に対してはまったく動作しません。私はそれを動作させることができますどのような方法ですか? – Sefam

+0

なぜ成功しないのですか:.done()の代わりに? – Indy

答えて

1

開始/終了識別子でメッセージを折り返して空白をチェックするか、if文の前にメッセージをトリミングしてみてください。

$.trim(message); 

alert('|' + message + '|'); 

また、アラートの代わりにコンソールを使用すると、余裕ができます。

console.log(message); 

Chrome、Firefox、Safariで動作します。テストのために、私の好みの方法です。

+0

それはうまくいった!ありがとうございました。 – Sefam

+0

あなたは大歓迎です。お役に立てて嬉しいです。 – Lazerblade

関連する問題