Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Bom galera estou valiando um formulário de login, só que as mensagens de alerta, info e tals quero retorna com o java script e apenas manipular os dados com o PHP, resumindo, consigo manipular todos os dados mas ele exibe as mensagens de alerta, quando utilizo o seguinte código
if(retorno = 'noif'){
alert(retorno);
msg('Login não existe!','erro');
}else if(retorno = 'diffpass'){
alert(retorno);
msg('Login não corresponde a senha!','alerta');
}
ele retorna apenas a primeira mensagens independente dos campos estarem vazios, com o login e senha errados ou certos. E quando faço da maneira certa alterando os operadores de comparação de "=" para "===":
if(retorno === 'noif'){
alert(retorno);
msg('Login não existe!','erro');
}else if(retorno === 'diffpass'){
alert(retorno);
msg('Login não corresponde a senha!','alerta');
}
Ele simplesmente não exibe nada em tela muito menos no console!
custom.js
/*
$(document).ready(function(){
$('form[name="form_login"]').submit(function(){ SELECIONA O FORMULARIO
console.log('clicou'); APARECE 'CLICOU' PARA DEBUGAR
$(this).fadeOut('fast'); OCULTA O FORM RÁPIDO QUANDO CLICA NO BOTÃO
var botao = $(this).find(':button'); SALVA OS ATRIBUTOS DO BOTÃO NA VARIAVEL 'BOTAO'
botao.attr('disabled', true); DESABILITA O BOTÃO
botao.html('Aguarde Carregando...'); ALTERA O QUE TEM ESCRITO NO BOTÃO
console.log($(this).serialize()); RECUPERA OS VALORES DOS CAMPOS E MOSTRA NO CONSOLE
return (false);
});
});$(document).ready(function(){
$('form[name="form_login"]').submit(function(){
var forma = $(this); //ARMAZENA O FORMULARIO FORM_LOGIN EM UMA VARIAVEL
var botao = $(this).find(':button'); //SALVA OS ATRIBUTOS DO BOTÃO NA VARIAVEL 'BOTAO'
$.ajax({
url: "ajax/controller.php", //DETERMINA A URL DO ARQUIVO QUE VAI PEGAR OS DADOS DO FORMULARIO COM PHP E ENVIA OS DADOS
type: "POST", //TIPO DOS DADOS QUE SERÃO PASSADOS PELO FORM
data: "acao=login&"+forma.serialize(), //PASSA UMA AÇÃO PARA O FORMULARIO E PEGA DOS DADOS
beforeSend: function(){ //OQUE SERÁ FEITO ENQUANTO CARREGA A PÁGINA
botao.html('Aguarde Carregando...').attr('disabled', true);
},
success: function(retorno){
botao.attr('disabled', false).html('<span class="glyphicon glyphicon-user"></span> Logar');
if(retorno == 'noif'){
alert(retorno);
msg('Login não existe!','erro');
}else if(retorno == 'diffpass'){
alert(retorno);
msg('Login não corresponde a senha!','alerta');
}
}
});
return false;
});
//FUNÇÕES GERAIS
function msg(msg,tipo){
var retorno = $('.retornou');
var tipo = (tipo === 'sucesso') ? 'success' : (tipo === 'alerta') ? 'warning' : (tipo === 'erro') ? 'danger' : (tipo === 'info') ? 'info' : alert('INFORME MENSAGENS DE SUCESSO, ALERTA, ERRO E INFO');
retorno.empty().fadeOut('fast', function(){
return $(this).html('<div class="alert alert-'+tipo+'">'+msg+'</div>').fadeIn('slow');
});
}
});
controller.php
<?php
ob_start(); session_start();
require_once '../funcoes/banco/conexao.php';
require_once '../funcoes/login/login.php';
//print_r ($_POST); RETORNA UMA ARRAY COM O VALOR DE TODOS OS CAMPOS
//echo $_POST['senha']; RECUPERA O VALOR DO CAMPO SENHA
$acao = filter_input(INPUT_POST, 'acao', FILTER_SANITIZE_STRING);
switch($acao) :
case 'login' :
$login = filter_input(INPUT_POST, 'login', FILTER_SANITIZE_STRING);
$senha = filter_input(INPUT_POST, 'senha', FILTER_SANITIZE_STRING);
if(login($login,$senha)) :
//cria a session
else:
$dados = pegaLogin($login);
if(!$dados) :
echo "noif";
elseif($dados -> administrador_senha != $senha) :
echo "diffpass";
elseif($dados -> administrador_nivel > 2) :
echo "non";
endif;
endif;
break;
default :
echo 'Erro!';
break;
endswitch;
ob_end_flush();
?>
Bom mesmo com "==" ele ainda não mostra as mensagens.
Sim ajudo todos como eu poço! Não sou nenhum expert na área mais sempre que posso ajudar eu ajudo com prazer!
success: function(retorno){
alert(retorno);o que aparece?
E como ficou o teu código agora ?
>
success: function(retorno){ alert(retorno);
o que aparece?
E como ficou o teu código agora ?
Ele retorna os valores certos que eu passei no PHP(noif,diffpass...), bom meu amigo eu coloquei o sistema em minha host e as mensagens apareceram normalmente como você pode ver: http://techif.com.br/adminpdo/ o problema deve ser em meu wamp server, sabe me indicar algum tutorias ou vídeo que ensine a configurar ele?
E como ficou o teu código agora ?
/*$(document).ready(function(){ $('form[name="form_login"]').submit(function(){ SELECIONA O FORMULARIO console.log('clicou'); APARECE 'CLICOU' PARA DEBUGAR $(this).fadeOut('fast'); OCULTA O FORM RÁPIDO QUANDO CLICA NO BOTÃO var botao = $(this).find(':button'); SALVA OS ATRIBUTOS DO BOTÃO NA VARIAVEL 'BOTAO' botao.attr('disabled', true); DESABILITA O BOTÃO botao.html('Aguarde Carregando...'); ALTERA O QUE TEM ESCRITO NO BOTÃO console.log($(this).serialize()); RECUPERA OS VALORES DOS CAMPOS E MOSTRA NO CONSOLE return (false); });});*/$(document).ready(function(){ $('form[name="form_login"]').submit(function(){ var forma = $(this); //ARMAZENA O FORMULARIO FORM_LOGIN EM UMA VARIAVEL var botao = $(this).find(':button'); //SALVA OS ATRIBUTOS DO BOTÃO NA VARIAVEL 'BOTAO' $.ajax({ url: "ajax/controller.php", //DETERMINA A URL DO ARQUIVO QUE VAI PEGAR OS DADOS DO FORMULARIO COM PHP E ENVIA OS DADOS type: "POST", //TIPO DOS DADOS QUE SERÃO PASSADOS PELO FORM data: "acao=login&"+forma.serialize(), //PASSA UMA AÇÃO PARA O FORMULARIO E PEGA DOS DADOS beforeSend: function(){ //OQUE SERÁ FEITO ENQUANTO CARREGA A PÁGINA botao.html('Aguarde Carregando...').attr('disabled', true); }, success: function(retorno){ botao.attr('disabled', false).html('<span class="glyphicon glyphicon-user"></span> Logar'); if(retorno === 'noif'){ msg('Login não existe!','erro'); }else if(retorno === 'diffpass'){ msg('Login não corresponde a senha!','alerta'); }else if(retorno === 'non'){ msg('Você não tem nível para acessar o painel!','alerta'); }else if(retorno === 'loginempty'){ msg('Preencha os campo <b>Login</b>','erro'); } } }); return false; }); //FUNÇÕES GERAIS function msg(msg,tipo){ var retorno = $('.retornou'); var tipo = (tipo === 'sucesso') ? 'success' : (tipo === 'alerta') ? 'warning' : (tipo === 'erro') ? 'danger' : (tipo === 'info') ? 'info' : alert('INFORME MENSAGENS DE SUCESSO, ALERTA, ERRO E INFO'); retorno.empty().fadeOut('fast', function(){ return $(this).html('<div class="alert alert-'+tipo+'">'+msg+'</div>').fadeIn('slow').delay(5000).hide(0); }); } });
Controller.php
<?phpob_start(); session_start();require_once '../funcoes/banco/conexao.php';require_once '../funcoes/login/login.php';//print_r ($_POST); RETORNA UMA ARRAY COM O VALOR DE TODOS OS CAMPOS//echo $_POST['senha']; RECUPERA O VALOR DO CAMPO SENHA$acao = filter_input(INPUT_POST, 'acao', FILTER_SANITIZE_STRING);switch($acao) : case 'login' : $login = filter_input(INPUT_POST, 'login', FILTER_SANITIZE_STRING); $senha = filter_input(INPUT_POST, 'senha', FILTER_SANITIZE_STRING); if(login($login,$senha)) : //cria a session else: $dados = pegaLogin($login); if(!$dados) : echo "noif"; elseif($dados -> administrador_senha != $senha) : echo "diffpass"; elseif($dados -> administrador_nivel > 2) : echo "non"; endif; endif; break; default : echo 'Erro!'; break;endswitch;ob_end_flush();?>
Quando você for comparar, você deve usar no mínimo 2 sinais de igual
isso aqui:
if(retorno = 'noif'){troque por
if(retorno == 'noif'){e os outros também.
Agora sobre os seus posts pedindo ajuda:
-> E VOCÊ, ajudou alguém ?