0

服务器端:

<?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';
        }
    }
}else {
    $errors[] = 'No data received!';
}
output_errors($errors);
?>

阿贾克斯:

$(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);
                }
        });
    });
});

问题是,当我将它放在 if 语句中时,它没有识别“数据”。登录没有问题,但页面不刷新。请帮忙。谢谢。

更新:我尝试在没有 AjaxStop 的情况下重新加载位置,但没有成功。我只想在“成功”时刷新页面

4

1 回答 1

0

尝试不使用ajaxStop,例如:

if(data == 'success') location.reload(true);

如果您正在重新加载页面 - 为什么要等待请求完成?

另外 - 确保你不要从 php.ini 发回任何其他不可见的字符。删除结束标签是一个很好的做法?>,以帮助解决这个问题。

于 2013-01-10T12:15:42.630 回答