Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

mruoppolo

Buscar dados e preencher formulário

Recommended Posts

Olá galera, tudo bem??

 

Preciso de uma ajudinha, eu fiz um sisteminha que integra javascript e php através do ajax, quando o cliente vai preencher um formulário a primeira coisa pedida é o cpf, ai quando o cliente informa o cpf ele busca no banco de dados se este cpf ja existe, caso ele exista o sistema preenche o resto do formulário com os dados puxados do banco, senão ele cadastra estes dados no banco.

 

Mas não esta funcionando alguém saberia me dizer o pq??

 

Segue os arquivos:

 

Formulário que puxa os dados:

 

<tr> 
      <td>CPF/CNPJ: </td>
      <td><input name="CnpjT" type="text" id="CnpjT" maxlength="14" onblur="javascript:pegaCPF();">
        (somente números)</td>
    </tr>

Então quando digita o cpf ai neste campo o evento onblur chama a função pega cpf que foi incluida no arquivo através da chamada:

 

<script src="js/jquery.js" type="text/javascript"></script>
<script src="js/busca-cpf.js" type="text/javascript"></script>

no arquivo header que é incluido com o php em todos os outros arquivos

 

Este arquivo busca-cpf.js é o seguinte:

 

/**
  * Função para criar um objeto XMLHTTPRequest
*/
 function CriaRequest() {
     try{
         request = new XMLHttpRequest();       
     }catch (IEAtual){
          
         try{
             request = new ActiveXObject("Msxml2.XMLHTTP");      
         }catch(IEAntigo){
          
             try{
                 request = new ActiveXObject("Microsoft.XMLHTTP");         
             }catch(falha){
                 request = false;
             }
         }
     }
      
     if (!request)
         alert("Seu Navegador não suporta Ajax!");
     else
         return request;
 }
  
 /**
  * Função para enviar os dados
  */
 function pegaCPF() {

     // Declaração de Variáveis
     var cpf   = document.getElementById("CnpjT").value;
     var xmlreq = CriaRequest();
	 
     // Exibi a imagem de progresso
     result.innerHTML = '<img src="img/load.gif"/>';
      
     // Iniciar uma requisição
     xmlreq.open("GET", "busca-cpf.php?cpf=" + cpf, true);
      
     // Atribui uma função para ser executada sempre que houver uma mudança de ado
     xmlreq.onreadystatechange = function(){
          
         // Verifica se foi concluído com sucesso e a conexão fechada (readyState=4)
         if (xmlreq.readyState == 4) {
              
             // Verifica se o arquivo foi encontrado com sucesso
             if (xmlreq.status == 200) {
                 result.innerHTML = xmlreq.responseText;
             }else{
                 result.innerHTML = "Erro: " + xmlreq.statusText;
             }
         }
     };
     xmlreq.send(null); 
 }

Ele joga as informações para o busca-cpf.php via get que faz a busca automática, não existem erros no php, depois ele retorna todos os dados dentro de uma variável e tem uma função javascript que preenche o formulário, porém eu ja depurei o código e vi que não esta nem chegando até o arquivo php a informação esta parando antes, alguém sabe me dizer se tem algo errado?? Não entendo mto de javascript este código ai peguei pronto da net.

 

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

aperte Ctrl + Shift + J no teu Firefox ou Chrome, e veja oque aparece no console de erros.

 

Leia:

http://wbruno.com.br/ajax/como-debugar-ajax-firebug/

http://wbruno.com.br/javascript-puro/como-debugar-javascript-firefox-erros-comuns/

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara aparece um monte de erros e quanto mais eu arrumo, mais erros aparecem, eu vou tentar me virar aqui, pq eu ja vi que isso vai ir mto longe.

 

Valeu pela ajuda

 

abraço



Cara consegui resolver os problemas todos, porém, agora ele entra no arquivo php passando o cpf, faz a busca retorna o resultado dentro da variavel $dados e esta variavel $dados vai ser tratada pela seguinte função:

 

<script type="text/javascript">
function preenche(){

	var rs = <?php if(isset($dados)){ echo $dados; } ?>
	var vetor = rs.split("-");
	document.formulario.RazaoSocialT = vetor[0];
	document.formulario.EnderecoT.value = vetor[1];
	document.formulario.NumeroT.value = vetor[2];
	document.formulario.ComplementoT.value = vetor[3];
	document.formulario.BairroT = vetor[4];
	document.formulario.CepT.value = vetor[5];
	document.formulario.MunicipioT.value = vetor[6];
	document.formulario.InscricaoMunicipalT.value = vetor[7];
	document.formulario.UfT = vetor[8];
	document.formulario.EmailT.value = vetor[9];
	
}
</script>

Esta função tbm esta incluída no arquivo header.php, porém ele esta efetuando toda a busca e tudo mais, só que ele não executa a função preenche(); como eu faço para ela ser executada automaticamente assim que ele terminar a consulta no banco de dados??

 

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

tá errado isso ai cara.

 

não dá para vc fazer esse echo ai do php.

Traga um json do ajax, e trate ele.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.