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

AJAX para trazer informações do Endereço do DB


Ewerton M.

Pergunta

Fala galera,

Tenho um probleminha e gostaria da ajuda de vocês..

Estou desenvolvendo um sistema e na parte de cadastro o usuário digitará o CEP e será feito uma consulta no banco de dados pra trazer todos os dados do endereço.

Pois bem, arquivo PHP que possui a consulta e trás os dados já está pronto e funcionando, ele recebe o cep por GET...

O AJAX, eu peguei de acordo com o modelo da W3Schools e esse não funciona...

Segue o código de ambos.

A chamada no arquivo HTML.

<tr>
                <td width="120"><font class="textoForm">CEP:</font></td>
                <td><input type="text" onblur="getCEP(this);" class="inputText" onkeypress="confereCep(this);" name="cep" maxlength="9" /></td>
            </tr>
<tr>
                <td colspan="2" align="right"><a href="">Não sei o meu CEP?</a></td>
                
            </tr>
            <tr id="endCliente" style="display:none;">
                <td width="120"><font class="textoForm">Logradouro:</font></td>
                <td><input type="text" id="logCliente" class="inputText" name="logradouro" /></td>
            </tr>
            <tr id="endCliente" style="display:none;">
                <td width="120"><font class="textoForm">Número:</font></td>
                <td><input type="text" id="numCliente" class="inputText" name="numero" /></td>
            </tr>
A função JS q está num arquivo chamado ajax.js
function getCEP(str)
{
    if(str=="")
    {
        document.getElementById("endCliente").style.display="";
        return;
    } 
    
    if(window.XMLHttpRequest)
    {// code for IE7+, Firefox, Chrome, Opera, Safari
        xmlhttp=new XMLHttpRequest();
    }
    else
    {// code for IE6, IE5
        xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
    xmlhttp.onreadystatechange=function()
    {
        if (xmlhttp.readyState==4 && xmlhttp.status==200)
        {
        document.getElementById("endCliente").innerHTML=xmlhttp.responseText;
        }
    }
    xmlhttp.open("GET","lib/ajaxCEP.php?cep="+str,true);
    xmlhttp.send();
}
E por fim, o arquivo ajaxCEP.php que é o responsável pela consulta e por trazer os dados...
<?php
    
        if($_GET['cep']){
        $_cep = $_GET['cep'];
    }
    
    if(strstr($_cep,'-',true))
    {
        $i = explode('-',$_cep);
        $cep = $i[0].$i[1];
    }
    else
    {
        $cep = $_cep;    
    }
    
    $sqlCEP = 'SELECT
                 endereco.id_endereco,endereco.id_bairro,endereco.cep,endereco.logradouro,endereco.complemento,
                 bairro.id_bairro,bairro.id_cidade,bairro.bairro,
                 cidade.id_cidade,cidade.id_uf,cidade.cidade,
                 uf.id_uf,uf.sigla,uf.uf
                 FROM endereco 
                 INNER JOIN bairro ON(endereco.id_bairro = bairro.id_bairro)
                 INNER JOIN cidade ON(bairro.id_cidade = cidade.id_cidade)
                 INNER JOIN uf ON(cidade.id_uf = uf.id_uf)
                 WHERE endereco.cep = ?';
    
    $queryCEP = DB::getConn()->prepare($sqlCEP);
    $queryCEP->execute(array($cep));
    $queryCEP->setFetchMode(PDO::FETCH_BOTH);
    
    $result   = $queryCEP->fetch();
    
    $countCEP = $queryCEP->rowCount();
    
    if($countCEP == 1)
    {
        echo '
        &lt;script>
            alert("Oi");
            document.getElementById("endCliente").style.display="block";
            document.getElementById("logCliente").value="'.$result['logradouro'].'";
        </script>
        ';    
    }

A chamada no navegador ocorre da seguinte forma ajaxCEP.php?cep=11111-111 ou ajaxCEP.php?cep=11111111

Acredito que o problema esteja no AJAX e na chamada dele...

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

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,3k
×
×
  • Criar Novo...