Busca de CEP 100% Ajax
Algum tempo atrás eu publiquei para o iMasters uma matéria sobre busca de endereço pelo CEP, no exemplo eu usei um pouco de jQuery e ColdFusion, mas para este exemplo eu vou utilizar 100% ajax, graças ao retorno fornecido pelo site http://cep.republicavirtual.com.br/
Para este exemplo, vamos utilizar somente a lib jQuery
Vou usar um formulário simples para exemplo, com somente os campos que preciso:
O formulário é simples, a única coisa diferente é o atributo “onBlur” no campo “cep”
o onBlur executa um comando javascript assim que o campo perde o fóco, neste caso eu chamo a função javascript “getEndereco()”
<form> <fieldset> <legend>Formulário de exemplo</legend> <label for="cep">CEP:</label> <input id="cep" maxlength="8" name="cep" size="9" onBlur="getEndereco()"/> <label for="rua">Logadouro:</label> <input id="rua" name="rua" size="50" /> <label for="bairro">Bairro:</label> <input id="bairro" name="bairro" size="30" /> <label for="cidade">Cidade:</label> <input id="cidade" name="cidade" /> <label for="estado">Estado</label> <input id="estado" maxlength="2" name="estado" size="2" /> </fieldset> </form>
Não esquecendo de fazer o include da lib do jQuery
Este será o Script
// Função única que fará a transação
function getEndereco() {
// Se o campo CEP não estiver vazio
if($.trim($("#cep").val()) != ""){
/*
Para conectar no serviço e executar o json, precisamos usar a função
getScript do jQuery, o getScript e o dataType:"jsonp" conseguem fazer o cross-domain, os outros
dataTypes não possibilitam esta interação entre domínios diferentes
Estou chamando a url do serviço passando o parâmetro "formato=javascript" e o CEP digitado no formulário
http://cep.republicavirtual.com.br/web_cep.php?formato=javascript&cep="+$("#cep").val()
*/
$.getScript("http://cep.republicavirtual.com.br/web_cep.php?formato=javascript&cep="+$("#cep").val(), function(){
// o getScript dá um eval no script, então é só ler!
//Se o resultado for igual a 1
if(resultadoCEP["resultado"]){
// troca o valor dos elementos
$("#rua").val(unescape(resultadoCEP["tipo_logradouro"])+": "+unescape(resultadoCEP["logradouro"]));
$("#bairro").val(unescape(resultadoCEP["bairro"]));
$("#cidade").val(unescape(resultadoCEP["cidade"]));
$("#estado").val(unescape(resultadoCEP["uf"]));
}else{
alert("Endereço não encontrado");
}
});
}
}
Os arquivos deste exemplo você pode baixar aqui http://www.ajaxianos.com.br/arquivos/cepSomentejQuery.zip
79 Responses to “Busca de CEP 100% Ajax”
« Anterior 1 2
Ajaxianos
[...] Fonte [...]
Muito 10 funcionou normalmente, mas depois de 2 dias parou de funcionar que deve ser? desde já agradeço
O serviço deve ter caído
Você sabe se o serviço caiu mesmo, ou tem limites de acessos, pois estou desenvolvendo um site para uma empresa que exigiu busca de cep automática,
será que você pode me indicar algum?
desde já aguardo e muito obrigado pela atenção.
Se você realmente vai precisar usar muito isso, eu recomendo que você procure uma agência dos correios e compre o CD com o banco de dados dos CEPs, eles vendem isso e não é caro.
Deve ter também para download por aí nas pesquisas do google
Como eu faço pra colocar uma imagem de LOADING.. ??
Parabéns Wender, muito criativo e útil…
Valeu…
Excelente post! Parabéns!
100% util parabens
Aqui utilizo o WHMCS e tentei mais no campo estado ele não preenche automáticamente… Qual seria o motivo?
url em http://www.hostalagoas.com.br/central/register.php
Mude o link do JQuery para a API do Google ou baixe a nova versão!
Fiz isso atualizei o jquery e nada…
url em http://www.hostalagoas.com.br/central/register.php
Veja se tem algo errado em
http://www.hostalagoas.com.br/central/includes/jscript/cep.js
William, se ainda nao conseguiu, tente colocar a variavel da URL com aspas simples:
$.getScript(“http://cep.republicavirtual.com.br/web_cep.php?formato=javascript&cep=”+$(‘#cep’).val(), function(){
…
}
});
Parabéns pela explicação. Rodei muito até chegar aqui, a busca de CEP em asp foi totalmente demais !. Obrigado …
Parabéns, muito bom!
[...] Fonte [...]
Bom dia,
Por favor,estou tentando pegar um igual a este para o IBGE, você tem?
obrigado por ajudar!
Att,
Anderson
Ola pessoal, analisando erro que o firebug o serviço é bloqueado quando é feito muitas requisições partindo de um mesmo IP olha o erro que capturei
“IP%20Bloqueado%20%28uso%20abusivo%29%20%2A%2A%20www.republicavirtual.com.br%2Fcep%2F”
Preciso de uma url para requisições via https nem a dos correios é. Alguma dica?
Faça a sua
http://www.republicavirtual.com.br/cep/
este exemplo pode se utilizado em um site sem direitos autorais ?
Sim
Como faz pra ter outra base de dados no caso um webservice que retorna-se em javascript direto do site dos correrios?
Alguem sabe?
Putz! Limpo, rápido e altamente eficaz. Obrigado !!
Parabens, foi muito util!
Ótimo script, mas ele não ta funcionando no google chrome, é possível uma atualização para ser compatível com esse navegador? já que é o mais utilizado pelos usuários na internet.
Podem baixar a base de dados dos correios nesse site
http://www.republicavirtual.com.br/cep/index.php
funciona perfeitamente,e a busca fica muito mais rápida e otimizada
André, ocorre algum erro?