0

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";

}

?>
4

3 に答える 3

0

もちろん、JQueryで投稿すると、php関数は一部のデータしか返さないため、ページを更新する必要があります。

2つの選択肢があります:

  1. 従来の方法で投稿する(フォーム送信)

  2. window.location='url'を使用してjavascriptからリダイレクトします。

于 2012-07-25T09:26:48.657 に答える
0

応答が 0 でない場合は js でリダイレクトされ、ログインに失敗した場合は php でリダイレクトされていることがわかります。また、サーバー側のリダイレクトはajaxでは機能しません。リダイレクトするwindow.location.href = 'url'必要があります。また、応答でコードステータスを送信することもできますが、自分で書くことはできません。

于 2012-07-25T10:48:24.840 に答える
0

JavaScriptでリダイレクトできます。AJAX リクエストがユーザーのブラウザをリダイレクトできない

if (response == 0) {
    $("#problem").html("Please enter correct details");
} else {
    window.location = "/index.php";
}
于 2012-07-25T09:25:58.313 に答える