2013-03-24 195 views
1

我試圖從jQuery Modal表單發送一個非常簡單的登錄表單。未提交Ajax表單

$( "#dialog-form" ).dialog({ 
    var url = "../scripts/sign_up.php"; 
    $.ajax({ 
     type: "POST", 
     url: url, 
     data: $("#dialog-form").serialize(), 
     success: function(data){ 
      alert("it works") 
     } 
    }); 
}); 

這是我第一次嘗試使用Ajax,並且遇到問題需要通過成功方法。我已檢查過我的腳本是否在正確的位置,並且dialog_form具有正確的ID。

我是否錯誤地發送此信息?是否有排除Ajax請求的好方法?

現在我只是試圖讓信息通過,並簡單地問題,刪除窗體的其他代碼。

+0

你確定這個「../scripts/sign_up.php」是你的腳本的正確路徑嗎? – hyde 2013-03-24 20:22:42

+0

SyntaxError:意外的標識符 – Musa 2013-03-24 20:22:49

回答

4

首先,我可能會reccommend添加error功能,以您的Ajax請求,以及 - 它可能與錯誤處理幫助:

error: function (jqXHR, textStatus, errorThrown) { 
    alert(textStatus); 
    alert(errorThrown); 
} 

其次,你是如何從腳本將數據發送回Ajax請求?如果您沒有回顯腳本中的任何數據,請求就不會知道腳本已成功運行。

因此,您可能需要將以下添加到您的AJAX調用:

dataType: "json", 

然後從你的PHP腳本返回數據,像這樣:

$data = array("success"=> true); 
echo json_encode($data); 
exit; 

在全(使用腳本) :

$( "#dialog-form" ).dialog({ 
    var url = "../scripts/sign_up.php"; 
    $.ajax({ 
     type: "POST", 
     url: url, 
     dataType: "json", 
     data: $("#dialog-form").serialize(), 
     success: function(data) { 
      if (data.success) { 
       alert("it works") 
      } 
      else { 
       alert("it failed, but no server error!"); 
      } 
     } 
     error: function (jqXHR, textStatus, errorThrown) { 
      alert("server error"); 
      alert(textStatus); 
      alert(errorThrown); 
     } 
    }); 
}); 
+0

感謝您的錯誤功能的想法。看起來它只是無法找到我的文件,我得到了一個404. – Alex 2013-03-24 20:22:48

+0

也許你在導入的頁面中使用腳本,這打破了ajax請求的相對路徑? – Aequanox 2013-03-24 20:25:16

+0

那麼,你需要鏈接到你的文件相對於你的AJAX腳本的位置 – 2013-03-24 20:26:17