2016-06-26 46 views
0

在我的網頁中,我使用jQuery/Ajax來保存表單數據。之後使用PHP我顯示像波紋管成功的消息保存數據:爲什麼jQuery返回數據不能按預期工作?

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

echo end($sql_result); 

在阿賈克斯返回的數據我檢查的條件,如果消息是含有updated話,我會隱藏的HTML元素,但它不工作。

這裏是我的jQuery代碼:

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

更新時間:

alert(data)正顯示出這樣的:

enter image description here

+2

不發送從服務器HTML,只需發送JSON格式狀態/標誌,然後在客戶端創建HTML。 – Tushar

+0

是爲了快速加載目的@Tushar? –

+0

在成功回調中在控制檯'data'變量中打印。它顯示什麼價值? – 1ven

回答

2

的情況並不少見,在PHP文/多餘的空格HTML輸出

這是一個原因,它更容易使用JSON和檢查對象的屬性,尤其是在比較複雜的字符串結束就像你在做什麼一樣。

但是在比較字符串結果時,使用TRIM()通常是一個好主意

嘗試

$.trim(data) === "<div class='success'>updated</div>") 
相關問題