登录表单失败jQuery + Ajax + PHP

时间:2012-07-25 09:20:24

标签: php jquery

我试图在成功登录Ajax脚本时刷新页面,但页面没有刷新。我被迫手动刷新页面,然后它才会出现。请提前感谢您的帮助,非常感谢。

这是ajax的登录脚本;

$("document").ready(function() {
    $("#what").click(function() {
        var email = $("#emailLogin").val();
        var password = $("#passwordLogin").val();
        var dataString = 'email='+email+'&password='+password;
        $.ajax({
            type: "POST",
            url: "authenticate.php",
            data: dataString,
            success: function(response){                
                //alert (response);
                if (response == 0) {
                $("#problem").html("Please enter correct details");
                            } else {
                    window.location = "index.php";
                }
            }
        });
    return false;
    });
});

这是用于验证表单的php脚本     

// authenticate.php

session_start();
require_once "database.php";
db_connect();
require_once "auth.php";


$user_id = credentials_valid($_POST['email'], $_POST['password']);

if($user_id){
  log_in($user_id);
  if($_SESSION['redirect_to']){
    header("Location: " . $_SESSION['redirect_to']);
    unset($_SESSION['redirect_to']);
  }else{
    header("Location: index.php");
  }

}else{
  echo "0";

}

?>

3 个答案:

答案 0 :(得分:0)

您可以使用javascript重定向。 AJAX请求无法重定向用户的浏览器

if (response == 0) {
    $("#problem").html("Please enter correct details");
} else {
    window.location = "/index.php";
}

答案 1 :(得分:0)

当然你需要刷新页面,因为你使用JQuery发布,php函数只返回一些数据。

您有两种选择:

  1. 发布经典方式(表单提交)

  2. 使用window.location ='url'重定向javascript;

答案 2 :(得分:0)

如果响应不等于0,我发现你在js中重定向,如果登录失败,你在php中重定向。服务器端重定向也不能与ajax一起使用,你必须用window.location.href = 'url'重定向它,你也可以在响应中发送代码状态,但不能自己编写。