2012-12-23 59 views
0

我有一個腳本,我打開一個窗體的jQuery對話框。我通過ajax將表單的值發送給一個php腳本。 php腳本將值保存在mysql數據庫中。jQuery UI對話框給變量返回框

一切工作正常。但是:

在這種情況下,插入mysql會出現問題,我會給用戶一個信息。但不僅「是錯的」。我想舉個例子,回到「已經存在」,「錯誤的參數」等等。

如何從php腳本中將信息返回給jQuery對話框?

我的劇本是這樣的:

function openmodal() { 
     var $dialogContent = $("#create_mieter"),  
     mieterID = $("#mieterID"), 
     snID = $("#snID"), 
     mietwechsel = $("#datepicker"), 
     zahlart = $("#zahlart"); 

     $dialogContent.dialog({ 
     height: "auto", 
     width: 500, 
     modal: true, 
     resizable: false, 
     title: "Neues Mietverhältnis anlegen", 
     close: function() {}, 
     buttons: { 
      Sichern : function() { 
       $.ajax({ 
       type: "POST", 
       url: "wohnungen_bearbeiten_mieter_sichern.php?act=create", 
       data: "mieterID=" + mieterID.val() + "&snID=" + snID.val() + "&mietwechsel=" + mietwechsel.val() + "&zahlart=" + zahlart.val(), 
         success: function(response) { 
          alert("Show Success");       
         }, 
         error: function() { 
          alert("Sorry something went wrong");  
         } 
       }); 
      $(this).dialog("close"); 
      }, 
     Abbrechen : function() { $(this).dialog("close"); } 
     } 
     }).show(); 

     $("#ui-datepicker-div").css("z-index", "99999"); 
+0

你需要返回一個re從服務器響應以指示出現錯誤。在'success:function(response)'中格式化一個'json字符串'併發送回服務器。然後你可以做'if(response.error){alert(response.error)} else {$(this).dialog('close')}''。 – Ohgodwhy

+0

您正在處理2種不同類型的錯誤。 AJAX通信錯誤或返回無法解析的數據,或者您可能需要發回消息的服務器端問題,例如無法連接到數據庫。它們不是同一件事。研究AJAX狀態代碼作爲jQuery中錯誤處理程序的開始。如果您的數據庫無法連接,但服務器代碼不會崩潰... ajax成功仍會觸發 – charlietfl

回答

0

它的所有的 '迴應' 的權利?

例如,您希望它向您顯示用戶選擇的電子郵件已被使用。 所以,文件,你會通過Ajax請求,你應該做的驗證中,我這樣做一次 我的「反應」是這樣的:

它驗證的電子郵件,並查詢它,看它是否是在使用中,如果是,響應將是1,否則它將爲0,如果發生另一種錯誤,則響應將是錯誤本身

然後回到ajax函數,我將驗證響應,它的工作原理對我來說,希望它適合你

對不起,對英文不好,不是原生的; D