Busca de endereço completo por CEP com jQuery e jSONP

Busca de Endereço por CEP

Mais um exemplo muito simples de Cross-Domain script, ou transação entre sites via script. Desta vez, usaremos a função $.getScript do jQuery para acessar um banco de dados remoto, e retornar o endereço completo através do CEP. 

 

Busca por CEP para preencher automaticamente endereços é extremamente útil em casos de cadastro, pois facilitar a vida do nosso querido usuário é tudo o que nós queremos certo? Então, como está função, ao digitar o CEP, é retornado automaticamente o endereço completo, bastando que ela informe um número! E o melhor, sem haver a necessidade de você ter um banco de dados!

Acessando Scripts Remotos

A idéia do script é bem simples. Nós recebemos o CEP que o usuário digitou, enviamos para um certo site o CEP passado e retornamos os resultado em forma de um vetor, com a rua, bairro, cidade e estado. Caso o CEP não seja encontrado, o usuário deverá preencher todos os campos manualmente.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Busca por CEP com jQuery</title>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.0/jquery.min.js"></script>
<script type="text/javascript">
function getEndereco() {
if($.trim($("#cep").val()) != ""){
$.getScript("http://cep.republicavirtual.com.br/web_cep.php?formato=javascript&amp;cep="+$("#cep").val(), function(){
if(resultadoCEP["tipo_logradouro"] != ''){
if (resultadoCEP["resultado"]) {
$("#rua").val(unescape(resultadoCEP["tipo_logradouro"]) + " " + unescape(resultadoCEP["logradouro"]));
$("#bairro").val(unescape(resultadoCEP["bairro"]));
$("#cidade").val(unescape(resultadoCEP["cidade"]));
$("#estado").val(unescape(resultadoCEP["uf"]));
$("#numero").focus();
}
}
});
}
}
</script>
</head>

<body>
<form>
CEP <input type="text" name="cep" id="cep" class="inputs" onblur="getEndereco()"/>
<br/>
Rua <input type="text" id="rua"/>
<br/>
Bairro <input type="text" id="bairro"/>
<br/>
Cidade <input type="text" id="cidade"/>
<br/>
UF <input type="text" id="estado"/>
<br/>
</form>
</body>
</html>

Fonte

Espero ter ajudado e confira o exemplo:
http://projetos.lucaspeperaio.com/busca-por-cep-jquery/

Lucas Peperaio

Estudante de Ciência da Computação, trabalho com desenvolvimento web há 5 anos e com hardware há 8. Nas horas vagas, sou entusiasta de Overclock, Casemod e Benchmarks, além é claro dos Games. Apaixonado por informática e pela vida, procuro compartilhar meus conhecimentos e assim, ajudar as pessoas. Siga-me no youtube, posto semanalmente muito material sobre Hardware, tecnologia e games em geral: Clique aqui

Receba gratuitamente em seu E-mail
Novos artigos do meu Blog!


Após o Cadastro você receberá um Email Automático. Clique no link enviado para Ativar e receber as novidades.

Categorias do site





7 Comentários Deixe o seu

  1. Gilton Guma

    Boa dica! Eu modifiquei um pouco e espero que ajude também, abraço!

    Código:

    function getEndereco() { if($.trim($(‘#cep’).val()) != ”){ $(‘#aguarde’).html(‘Buscando endereço…’); $.getScript(‘http://cep.republicavirtual.com.br/web_cep.php?formato=javascript&cep=’ +$(‘#cep’).val(), function(){ if (resultadoCEP[‘resultado’] > 0){ var tip = unescape(resultadoCEP[‘tipo_logradouro’]); //Tipo de logradouro var log = unescape(resultadoCEP[‘logradouro’]); //Logradouro var bai = unescape(resultadoCEP[‘bairro’]); //Bairro var cid = unescape(resultadoCEP[‘cidade’]); //Cidade var est = unescape(resultadoCEP[‘uf’]); //Estado (UF)

    $(‘#rua’).val(log ? tip+ ‘ ‘ +log : tip); $(‘#bairro’).val(bai); $(‘#cidade’).val(cid); $(‘#estado’).val(est); $(‘#rua’).focus(); $(‘#aguarde’).html(”); } else { $(‘#rua’).val(”); $(‘#bairro’).val(”); $(‘#cidade’).val(”); $(‘#estado’).val(”); } }); } }

    • Lucas Peperaio

      Opa, legal cara, valeu pelo comentário

  2. Rafael Brunelli

    Muito util e muito funcional, facinho de entender até pra quem não ta tão acostumado con a linguagem….

    valew!!

  3. Matheus Bruno

    É uma pena que o http://cep.republicavirtual.com.br/ limite a quantidade de acesso.

    Você sabe de alguma outra base virtual para esse tipo de consulta?

  4. Lucas Peperaio

    Matheus Bruno, você pode baixar o banco de dados deles e usá-lo em sua própria aplicação:
    http://www.republicavirtual.com.br/cep/download/cep.sql.bz2

  5. Roberto

    Prezado, testei usando CEPs Municipais tipo aqui em Florianópolis é 88000-000, Porto Alegre é 90000-000 Tentei sem o hífen claro, mas não retorna nenhum resultado. Alguma dica de como eu poderia resolver isso? Sabe dizer em que termos eu defino numa condicional para exibir pelo menos a cidade e estado, quando o CEP for como mencionei acima? Obrigado

  6. Lucas Peperaio

    Roberto, tive o mesmo problema com CEPs de determinadas cidades, provavelmente o WebService deles está desatualizado ou os CEPs são recentes