2013-03-24 128 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