私はajaxを使用してlogin.phpからログインエラーをキャッチし、同じログインフォームに表示する新しいページをエラーメッセージで再ロードするよりもこれで正常に動作しますが、ログインが成功すると、新しいページにロードするのではなく、ログインしたページ全体(home.php)がログインフォームにロードされます。あなたはここの画像で、を見ることができます。ここで私が使用しているAJAXのための私のコードは次のとおりです。ここでAjaxを使用してログインフォームにエラーが発生した新しいページを再ロードしない
$("#login_button").click(function(){
$.post($("#login_form").attr("action"), $("#login_form :input").serializeArray(), function(info){$("#login_errors").html(info);});
// Prevent the default action from occurring.
return false;
});
$("login_form").submit(function(){
return false;
});
は、私が使用している私のログインフォームのコードは次のとおりです。
<form id= "login_form" action="login.php" method="post">
<span id="login_errors" style="color:#F00;"></span>
<label>Email Address</label>
<input type="text" name="email" id="email" required="required"/>
<br />
<label>Password</label>
<input type="password" name="password" id="password" required="required"/>
<br />
<div class="checkbox">
<input id="remember" type="checkbox" name="keep" />
<label for="remember">Keep me signed in</label>
</div>
<div class="action_btns">
<div class="one_half last"><input type="submit" class="btn btn-blue" id="login_button" value="Login"></div>
<div class="one_half last"><a href="#" id="register_form" class="btn">Sign up</a></div>
</div>
</form>
おかげで、私はこれを試してみました: – rockb0ttom
$を( "#login_button")。(function(){ $ .post($( "#login_form")。attr( "action")、$( "#login_form:input")。serializeArray()、function(info ) window.location.href = home.php; } else { $( "#login_errors").html(info){if(info.status === 'ok')};}); //デフォルトのアクションが発生しないようにします。 falseを返します。 }); – rockb0ttom
でも同じことをしています – rockb0ttom