jQuery .ajax'成功'功能永远不会运行

时间:2012-11-24 20:26:23

标签: ajax jquery

我第一次尝试使用jQuery,而使用.ajax的POST函数给了我悲伤。 POST成功;我的PHP页面正确运行MySQL查询,并返回新创建的用户ID。唯一的问题是,而不是运行'成功'功能;它只是加载我调用的PHP页面,它只是回显用户ID。

这是jQuery函数:

function register() {
$.ajax({
    type: "POST",
    url: 'sendRegistration.php',
    data: dataString,
    datatype: 'html',
    success: function(response){alert(response);},
    complete: function(response,textStatus){console.log(textStatus);},
    error: function(response){alert(response);}
});
}

...和PHP返回的内容:

    // Create a new send & recieve object to store and retrieve the data
    $sender = new sendRecieve();
    $custId = $sender->submitUser($userVars);
    if ($custId != 0) {
        echo $custId;
    } else {
        echo "Database connection problems...";
    }

创建数据库对象,然后加载'url'参数的php页面,显示$ sender-> submitUser()函数返回的id。

理想情况下,我希望它永远不会显示'sendRegistration.php'页面,而是运行另一个js函数。

我确信这是一个简单的解决方案,但经过数小时的搜索后我无法找到它。

感谢您的帮助。

2 个答案:

答案 0 :(得分:3)

您可能会从表单中处理此问题。如果您不阻止浏览器的默认表单提交过程,该页面将重定向到表单的action网址。如果表单中没有action,则会重新加载当前页面,这很可能是您的情况。

要防止这种情况,请使用以下任一方法

$('form').submit(function(event){
    /* this method before AJAX code*/
    event.preventDefault()    

        /* OR*/

      /* this method after all other code in handler*/
      return false;
})

如果您从表单提交按钮

上的单击处理程序发送AJAX,则适用相同的方法

答案 1 :(得分:0)

你是如何调用register()函数的?它可能是传统上提交的表单,您可能需要阻止默认操作(标准表单提交)。