Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Pessoal,
Estou criando um sistema de login que faz a consulta ajax,porém todos os dados que eu retorno, sempre entra no if, indiferente do que eu passo na minha variavel dados:
$.post('login.php',
{ tipo: 'Login', userid: $('#userid').val(), password: $('#password').val() },
function (dados) {
if(dados == "failed") {
$('#login_mensagem').html('if Usuário ou senha inválido!').slideDown('fast');
alert(dados);
}else if(dados == 'ok') {
$('#login_mensagem').html('Logado com sucesso').slideDown('fast');
alert(dados);
}$('#login_mensagem').html('Favor conferir a sua senha ').slideDown('fast');
alert(dados);
}
}
);
O que pode ser?
O meu retorno do php são esses:
no IF = print_r("failed");
no ELSE IF = print_r("ok");
no ELSE = print_r("");Mesmo alterando o print_r para echo, não funcionou o if no js.
Você deu o console.log no JS? Se seu navegador for o chrome abra o console (F12, ou Ctrl+Alt+J) no seu código coloque assim:
$.post('login.php',
{ tipo: 'Login', userid: $('#userid').val(), password: $('#password').val() },
function (dados)
{
console.log( dados );
if(dados == "failed") {
$('#login_mensagem').html('if Usuário ou senha inválido!').slideDown('fast');
alert(dados);
}else if(dados == 'ok') {
$('#login_mensagem').html('Logado com sucesso').slideDown('fast');
alert(dados);
}
else {
$('#login_mensagem').html('Favor conferir a sua senha ').slideDown('fast');
alert(dados);
}
});O retorno da console é o seguinte
ok default.js:197
failed default.js:197
Ele está buscando duas vezes no arquivo? Tem como postar o login.php ? A parte que faz essa verificação?
Na verdade coloquei os dois retorno, cada vez ele mostrou apenas uma saída.
Fiz um outro testes agora que foi retornar valor numericos e comparar os mesmo e esse sim funcionou, ou seja o problema é quando comparo a string.
Segue o teste que fiz agora.
if ( dados == 1 )
alert("if - teste");
else if ( dados == 2 )
alert("else - 2");
Veja: print_r no php.net