javascript - jQuery 消息验证器无法正常工作

标签 javascript php jquery

我正在使用 jQuery 做一个基本的登录系统,对我来说似乎一切都很好,但我总是在这里输入我的 jquery: alert('Error in system');

但这很奇怪,因为当我执行此操作时 alert(answer); 它会显示我的 $_SESSION['userlogin'] 的所有数据。

有人知道可能出了什么问题吗?

我有这个 jQuery 在登录表单中显示验证器消息:

    $('form').submit(function(){
        var login = $(this).serialize() + '&action=login';
        $.ajax({
            url: 'switch/login.php',
            data: login,
            type: 'POST',
            success: function(answer){
                if(answer == 'errorEmpty'){
                    $('.msg').empty().html('<p class="warning">Informe seu usuário e senha!</p>').fadeIn('slow');
                }
                else if (answer == 'errorPass'){
                    $('.msg').empty().html('<p class="error">Error ,wrong pass or username!</p>').fadeIn('slow');

                }
                else if(answer == 'sucess'){
                    window.setTimeout(function(){
                        $(location).attr('href','dashboard.php');
                 },1000);
               }
                else{
                    alert('Error in system');
                }
                alert(answer);
            },
            beforeSend: function(){
                $('.loginbox h1 img').fadeIn('fast');
            },
            complete: function(){
                $('.loginbox h1 img').fadeOut('slow');
            },
            error: function(){
                alert('Error in system');
            }

       });
        return false;
    });

});

然后我就有了我的 php 文件:

switch ($action){
    case 'login':
        $user = $_POST['user'];
        $pass = $_POST['pass'];

        if(!$user || !$pass){
            echo 'errorEmpty';
        }else{  
            $searchUser = $pdo->prepare("SELECT * FROM admins WHERE login=:login AND pass=:pass"); 
            $searchUser->bindValue(":login", $user);  
            $searchUser->bindValue(":pass", $pass); 
            $searchUser->execute();
            $num_rows = $searchUser->rowCount();
            $result = $pesquisaUser->fetch(PDO::FETCH_ASSOC);

            if($num_rows>=1){

                $_SESSION['userlogin'] = $result;
                echo 'sucess';
                print_r($_SESSION['userlogin']);
            }
            else{
                echo 'errorPass';
            }
        }
    break;
    default:
        echo 'Error';

}

最佳答案

return;放在echo sucess语句之后,我认为问题是print_r($_SESSION['userlogin']);

放置return;后,print_r将不会执行。

echo 'sucess';
return;

关于javascript - jQuery 消息验证器无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23025805/

相关文章:

php - 在模态中将 Jquery 变量传递给 php

javascript - Leaflet 和 jQuery mobile 不会合作

javascript - 如何让我的 JavaScript 在中继器中工作?

javascript - 在循环中使用 indexOf 是个坏主意吗?

javascript - 在 div 的最后一行平铺 div 等高

php - 在多个 CSS Div 框中显示来自数据库的数据

php - 使用crypt()和password_hash()函数加密后密码不匹配

javascript - 如何使我的输出全部显示在一行中且没有空格?

php - 在亚马逊aws中获得拒绝的权限

javascript - 如何通过javascript更改html中所有td标签的值