1

我正在尝试从 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 请求问题的好方法?

现在我只是想让信息通过,简单的问题是删除表单的其他代码。

4

1 回答 1

4

首先,我可能还建议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);
        }
    });
});
于 2013-03-24T20:20:58.790 回答