Ir para conteúdo
Fórum Script Brasil
  • 0

Php + Ajax +JQuery - retornando String com muitos espaços em branco


Elder_Castro

Pergunta

Olá, sou novo no fórum, gostaria de pedir uma ajuda de vocês.
Criei uma tela de login com Php, Ajax, JQuery usando as camadas MVC está funcionando corretamente mas tem uma situação um tanto estranha.

esse aqui é meu script js com Ajax e JQuery.


$(document).ready(function(){

var btnLogin = $("#frmLogin").find(':button');
$("#logar").click(function(){
$.ajax({
//Requisição ajax
url:"../controller/FuncionarioController.php",
type:"POST",
data:"acao=Login&"+$("#frmLogin").serialize(),//+$(this).serialize(),
//Antes de executar
beforeSend: function(){
btnLogin.html("Aguarde...").attr('disabled',true);
//img Load
$('.load').fadeIn('slow');
},
//Retorno da excução
success: function(retorno){
$('.load').fadeOut('slow',function(){
btnLogin.attr('disabled',false).html("Entrar");
});
if (retorno === '    cv'){               //<- A particularidade está exatamente neste bloco de if 
msgResposta('Preencha todos os campos'); //<-Por algum motivo que desconheço o retorno da requisição
}else if (retorno == '    ne'){          //<-está vindo com 4 espaços em branco  
msgResposta('Este usuario não existe');  //<- Ex o que era para ser isso if (retorno == 'ne') está
} else if (retorno === '    se'){        //<-está sendo feito assim if (retorno == '    ne')      
msgResposta('Senha Invalida');
} else if (retorno === '    lg'){
//Se logado com sucesso redireciona a pagina
$(location).attr('href','http://localhost/projects/SISGA/View/index.php');
}
}
});
return false;

});

function msgResposta(msg){
var retorno = $('.msgRetorno');

retorno.empty().fadeOut('fast',function(){
return $(this).html('
'+msg+'
').fadeIn('slow');
});

setTimeout(function(){
retorno.fadeOut('slow');
}, 4000);
}

});

Esse aqui é o meu controller basicamente o que ele me retorna são as strings 'cv','se','ne','lg' essas strings que são recupadas e estão vindo com espaços em branco.

<?php
ob_start(); session_start();
    require_once '../Model/Funcionario.php';

    $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(empty($login) || empty($senha)){
                   echo "cv"; // Campo(s) vazio  
                   exit;   
               }
               
               $objFuncionario = new Funcionario();
               $objFuncionario->setfunlogin($login);
               //$objFuncionario->setfunsenha(md5(strrev($senha)));
               $dadosLogin = $objFuncionario->ValidaLogin();
               if (!$dadosLogin){
                   echo 'ne'; //Este usuario não existe
               }elseif (trim($dadosLogin->funsenha) != md5(strrev($senha))){
                   echo 'se'; //Senha Invalida / Errada
               }else if (($dadosLogin->funlogin == $login) & (trim($dadosLogin->funsenha)) == md5(strrev($senha))){    
                   echo 'lg'; //logado com sucesso  
                   $_SESSION['funcionario'] = $dadosLogin;  
               }
                                   
            break;
        default:
            echo "Erro!";
            break;
    }
ob_end_flush();
?>

Como falei no inicio está funcionando mas tem aquela particularidade que tenho que deixar minhas strings com espaços em branco para poder funcionar.

preciso de algo do tipo trim mas dentro do meu js.

desde já agradeço a ajuda.

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

Já experimentaste colocar um console.log(retorno); logo no início da função on success para ver o que está a ser devolvido?

No JavaScript é possível usar o método trim numa string mas neste caso não me parece que o problema esteja no jQuery, uma vez que irá devolver o código HTML da página a que foi feito o pedido. Acedendo à página do controller no browser, já tentaste ver o código fonte?

Link para o comentário
Compartilhar em outros sites

  • 0

<script type='text/javascript'>window.mod_pagespeed_start = Number(new Date());</script>

Já experimentaste colocar um console.log(retorno); logo no início da função on success para ver o que está a ser devolvido?

No JavaScript é possível usar o método trim numa string mas neste caso não me parece que o problema esteja no jQuery, uma vez que irá devolver o código HTML da página a que foi feito o pedido. Acedendo à página do controller no browser, já tentaste ver o código fonte?

Sim, no console.log aparece sem espaços.

Link para o comentário
Compartilhar em outros sites

  • 0

<script type='text/javascript'>window.mod_pagespeed_start = Number(new Date());</script>

Você também pode tratar diferente esse negocio.

você retorna um objeto json com duas posições.

1- tipo (Erro ou sucesso)

2- mensagem

e ai você não precisa tratar no javascript as coisas.

<script type='text/javascript'>window.mod_pagespeed_start = Number(new Date());</script>

Você também pode tratar diferente esse negocio.

você retorna um objeto json com duas posições.

1- tipo (Erro ou sucesso)

2- mensagem

e ai você não precisa tratar no javascript as coisas.

Vou pesquisar para tentar com JSON

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...