2016-06-26 5 views
0

私のウェブページでは、フォームデータを保存するためにjQuery/Ajaxを使用しています。後、私は怒鳴るように成功したメッセージを表示していますPHPを使用してデータを保存する:AjaxのリターンデータでなぜjQueryの戻りデータが期待どおりに機能していないのですか?

if($sql){ 
    $sql_result[] = "<div class='success'>updated</div>"; 
} 

echo end($sql_result); 

をメッセージがupdatedが、私はhtml要素を非表示になります含まれている場合、私は条件をチェックしていますが、それは働いていません。

ここは私のjQueryのコードです:

alert(data)が表示されている:更新

function save_email (element, event) { 

    e = $(element); 
    event.preventDefault(); 
    var formData = new FormData(e.parents('form')[0]); 

    $.ajax({   
     data : formData, 
     cache : false, 
     contentType: false, 
     processData : false, 

     url : 'save_email.php', 
     type : 'POST', 
     xhr : function() { 
      var myXhr = $.ajaxSettings.xhr(); 
      return myXhr; 
     }, 
     success : function (data) { 
      $("#email_success").html(data); 
      //$("#email_success").show('slow').delay(3000).hide('slow');    
      if(data == "<div class='success'>updated</div>") {     
       $("#save_email_button").hide('slow');     
       $(".delete_ex_email_label").hide('slow');     
      }    
     }, 
    }); 
} 

コンソールログデータ

enter image description here

この:

enter image description here

+2

を試してみてくださいHTMLを作成します。 – Tushar

+0

は、すぐに@Tusharを読み込むためのものですか? –

+0

成功コールバックで 'data'変数をコンソールに表示します。どのような価値が表示されますか? – 1ven

答えて

2

はそれはそれは、特に複雑な文字列を比較した上で、JSONを使用して、オブジェクトのプロパティをチェックする方が簡単です理由の一つであるPHP text/htmlの出力

に余分な空白で終わることも珍しくはありませんあなたがやっているように。

ただし、文字列の結果を比較するとき)(トリム使用することは一般的に良いアイデアです

だけで、クライアント側で、その後JSON形式でのステータス/フラグを送信し、サーバーからHTMLを送信しないでください

$.trim(data) === "<div class='success'>updated</div>") 
関連する問題