0
$(document).ready(function(){

    $("#login").click(function(){
    $.post($('#loginform').attr("action"), $('#loginform').serializeArray(), function(data) {
                if(data == 'Success'){
                    $(document).ajaxStop(function() { location.reload(true); });
                }else {
                    $('#loginmsg').html(data);
                }
        });
    });
});

送信が成功した後にページが更新されないことを除いて、すべてが完全に正常に機能しています。どうすればそれができますか?

サーバ側:

<?php
if (empty($_POST) === false){
    $username = $_POST['username'];
    $password = $_POST['password'];

    if (empty($username) === true || empty($password) === true){
        $errors[] = 'You need to enter a username or password';
    }
    else if (user_exists($username)===false){
        $errors[] = 'We can\'t find that username in our database.';
    }
    else if (user_active($username) === false){
        $errors[] = 'Activate your account.';
    }   else    {
        $login = login($username,$password);
        if ($login === false){
            $errors[] = 'Incorrect combination.';
        } else {
            $_SESSION['user_id'] = $login;
            $errors[] = 'Success';
            exit();
        }
    }
}else {
    $errors[] = 'No data received!';
}
output_errors($errors);
?>
4

3 に答える 3

0

あなたはワイトする必要があります:

window.location.reload()

また

window.location.href=window.location.href
于 2013-01-10T09:28:48.950 に答える
0

exit()PHP での呼び出しを削除します。output_errors($errors)成功の場合に行くのを妨げているので、Successメッセージをクライアントに送信することはありません。

于 2013-01-10T10:01:01.590 に答える
0

ajaxStop()を呼び出す必要はありません。成功コードを次のように変更します。

if(data == 'Success'){
  location.reload(true);
}
于 2013-01-10T09:39:59.350 に答える