我第一次尝试使用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函数。
我确信这是一个简单的解决方案,但经过数小时的搜索后我无法找到它。
感谢您的帮助。
答案 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()函数的?它可能是传统上提交的表单,您可能需要阻止默认操作(标准表单提交)。