Ajax表单未提交

时间:2013-03-24 20:17:22

标签: php jquery ajax

我试图从jQuery Modal表单发送一个非常简单的登录表单。

$(  "#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请求问题的好方法?

现在我只是试图获取信息,而只是问题,删除了表单的其他代码。

1 个答案:

答案 0 :(得分:4)

首先,我可能会建议在您的Ajax请求中添加error函数 - 它可能有助于处理错误:

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);
        }
    });
});