【发布时间】:2014-05-22 21:21:30
【问题描述】:
我有一个 Ajax 调用,它将登录表单的值发布到一个 php 文件,如果用户名和密码错误,它将更新上面的用户名和密码 div id= #phplogin 并显示错误消息。
在同一个 PHP 文件中,如果用户名和密码正确,那么我正在重定向页面。但是这种重定向发生在 div 中,整个页面没有被重定向。现在我在用户名和密码上方的 div 中看到了重定向页面。如何完全避免和重定向?
Ajax 调用:
jQuery("#loginForm").validate({
submitHandler: function() {
var postvalues = jQuery("#loginForm").serialize();
jQuery.ajax
({
type: "POST",
url: "contact/process-loginform.php",
data: postvalues,
/* success: function(response)
{
jQuery("#phplogin").html(response).show('normal');
jQuery('#inputEmail1, #inputPassword1').val("");
}*/
error: function(response)
{
jQuery("#phplogin").html(response).show('normal');
jQuery('#inputEmail1, #inputPassword1').val("");
}
});
这里是php部分的代码:
if(mysql_num_rows($result) == 0) { // Combo not found
$phplogin = '<div class="alert alert-danger fade in">Invalid Username/Password. Please try again.</div>';
die($phplogin);
}
else
{
session_regenerate_id();
$_SESSION['sess_user_id'] = $result['id'];
$_SESSION['sess_username'] = $result['username'];
session_write_close();
header('Location: ../index.php');
}
现在,如何在 mysql_num_rows($result) == 0 时显示错误,以及如何在 mysql_num_rows($result) != 0 时完全重定向。
请帮忙。
【问题讨论】:
-
AJAX 调用“在后台”发生,并且作为 ajax 调用的一部分发生的任何重定向都不会影响执行 ajax 调用的代码所在的主页。如果您想要一个 ajax 响应来重定向页面,您必须让您的 ajax 成功处理程序自己执行
window.location = ....类型重定向。 -
谢谢,但您能否至少告诉我会话是否会建立?