05th mar 2009

Consulta de CEP em ajax

Resolvi juntar duas bibliotecas que fiz (e estão disponibilizadas no site): a de consulta de endereço por CEP e a JS Calls PHP (interação entre javascript e PHP) para criar uma consulta de endereços através do CEP usando requisição assíncrona.

Faça download aqui!

No pacote, há um arquivo cep.htm e a subpasta jscallsphp; não é necessário alterar nada na pasta ou nos arquivos delas, já está configurada pronta para uso.
O cep.htm contém um exemplo de uso (veja funcionando). Só é necessário fazer a chamada aos arquivos da JS Calls PHP. Com isso, no javascript você terá no contexto um objeto chamado  cepLivre que possui o método buscaEndereco(String cep). O CEP deve ser passado no formato XXXXX-XXX.
No exemplo, passei também uma função de callback que trata retorno do método; é retornado um objeto com vários atributos que possuem as informações do endereço. Os atributos são:

  • status – 1 para CEP válido, 0 para inválido
  • tipoLogradouroDesc - descrição do tipo de logradouro (rua, avenida, etc…)
  • logradouro – logradouro
  • bairro – bairro
  • cidade - cidade
  • uf – unidade da Federação (por extenso)
  • ufSigla – unidade da Federação (sigla, por exemplo SP)
  • cep – o próprio CEP

Dúvidas e sugestões, são bem vindos.

[UPDATE] Esqueci de expor que todo esse pacote está disponibilizado sob a licença GPL. Sintam-se livres para baixar, usar e modificar. Obrigado a quem avisou! [/UPDATE]

Posts relacionados

Avalie

1 estrela2 estrelas3 estrelas4 estrelas5 estrelas (No Ratings Yet)

17 Responses to “Consulta de CEP em ajax”

  1. Thiago Cavalcanti says with Firefox on Ubuntu 8.04

    Oi Chris!
    Excelente ferramenta! Pretendo usar, mas fiquei curioso sobre o porque de você não colocar nenhuma informação de autoria ou licenciamento nos arquivos? Desconsidere se já houver, mas é que não vi nada quando li, e olha que eu também pesquisei em todos os arquivos usando um one-liner de cat e grep basicamente(vício feio da época que eu usava Slackware). Agora você me dá licença que eu vou brincar um pouquinho com elas!

  2. Chris says with Firefox on Mac Os X 10.5

    Valeu pelos elogios!

    Na verdade, o pacote original da JS Calls PHP vem com um readme.txt que fala da licensa – GPL.
    De qualquer forma, esqueci de comentar mesmo.
    Bem, o uso é livre, pode ser usado em qualque aplicação, o código pode ser modificado livremente. Open source na cabeça! hehe

    Abraços, e se possível dê feedback :)

  3. Mau BlogdoMau.com.br says with Firefox on Windows XP

    É.. realmente muito bom essas bibliotecas, alivia um bocado o serviço hehe :)

    você estuda o que!?

    Abs,

  4. Thiago Cavalcanti says with Firefox on Ubuntu 8.04

    Tudo bem, já havia descoberto isso hoje após uma googlada. E quanto ao feedback, acho que seria legal já ter um noscript no cep.html avisando aos usuários sem javascript, ou com ele desabilitado, que a funcionalidade seria limitada. Sei que é obrigação de quem for fazer uma página usando esta ferramenta de se preocupar com este tipo de coisa, mas você sabe como é, nem todo mundo presta atenção nestes detalhes e não custa nada ajudar! Por enquanto é só!
    Abraço!

  5. Chris says with Firefox on Ubuntu 8.10

    Thiago, uma vez que é uma biblioteca para requisições assíncronas via javascript, parti do princípio que não seria necessário fazer isso no .html de exemplo, até porque foge do escopo do exemplo (desculpe a redundância! hehe) além do que é uma biblioteca voltada a desenvolvedores e não o usuário final.
    Mas, valeu pelo toque!
    Abraço!

  6. Chris says with Firefox on Mac Os X 10.5

    Para quem baixou a biblioteca e teve problema: corrigi um erro na configuração. Mandei o config.php que uso localmente ao invés de usar o config.php do servidor aqui do blog. Corrigi o .zip, está okey agora!

  7. hlegius says with Opera on Windows Vista

    Cara, excelente tool que criou ! Essa é daquelas “óbvias que ninguém pensou em fazer” manja ? Isso é uma PUTA mão na roda !
    A base você está buscando no server da republica(algumacoisa) ou de outro canto ?

    Baixei aqui, vou dar uma olhada no código e daí depois volto e comento – aqueles comentários técnicos, longos e (chatos de ler) :)

    Ah sim, esqueci: vou usar sem dúvidas a partir de hoje, ó :)

    Parabéns mano !
    Abração !

  8. Chris says with Firefox on Ubuntu 8.10

    Ah, na verdade alguém já tinha pensado; os caras que fizeram o DWR, que é um framework para aplicações java! Eu peguei a idéia e implementei aqui pro PHP! hehe

    A base, eu uso a que uma consultoria disponibiliza. Parece que é deles, estão populando na mão, para ser uma base “open”, sem ter necesidade de pagar a licensa pros correios. E disponibilizam uma consulta por http, que retorna um xml com os dados do endereço.
    Tem o link para o site dos caras no post linkado ali no começo do texto!

    Vlw!

  9. Tárcio Zemel says with Firefox on Windows XP

    EXCELENTE, Chris! Demais, MESMO!

    Estou em desenvolvimento de um projeto com uma colega e no cadastro precisaríamos justamente de algo assim. Caiu como uma luva de pelica!

    Só uma dúvida, como fazer para manter atualizada a “base” de CEPs?

  10. Chris says with Firefox on Mac Os X 10.5

    Cara, dá uma olhada aqui: http://www.chrisb.com.br/blog/consulta-livre-em-base-de-ceps-com-php/
    Ali explico de onde é feita a consulta. Basicamente é uma base de dados open source que uma consultoria abriu uma “API” (tem uma URL para a qual você passa o CEP como parámetro e ele retorna um XML).
    No post ali tem todos o link pro site do projeto e mais infos!

    E que bacana quer curtiu e ajudou! Entre em contato qq. coisa!

    []s!

  11. guilherme says with Firefox on Windows Vista

    Cara..mto bomo script…mas se voce consultar na base do correio o cep: 37550-000 verá que vai retornar mais de 1 endereço, e este serviço do cep livre nao esta 100%..

    =/

    mas vlw!!

  12. André says with Firefox on Mac Os X 10.5

    Chris, seu script é muito bom. Tenho um parecido com ele…
    Mas como todo desenvolvedor tenho que testar a aplicação em todos os navegadores.
    o que aconteceu é que essa funcionalidade não da certo em nenhum IE.
    Eu não uso ie mas meus clientes usam…

    se souber de alguma solução me avisa por favor :D

    se eu conseguir resolver eu posto aqui o link.

    vlw.
    []s

  13. Chris says with Firefox on Ubuntu

    Olá André!
    Muito obrigado, primeiramente, por ter se interessado pela biblioteca.
    Vi aqui e o erro na verdade nem é da JS Calls PHP em si, mas sim do exemplo que eu montei para teste unitário; estava usando o Dreamweaver para fazer o código e usei o autocompletar para inserir os scripts do js, e ao invés de colocar type=”text/javascript” acabou sendo inserido “application/javascript”.
    Corrigi o teste unitário do CEP (http://www.chrisb.com.br/jscallsphp/unit/teste_cep.php) e está funcionando corretamente; hoje de noite vou refazer todos os htmls dos testes unitários e atualizar o pacote!

    Obrigado denovo!

  14. Chris B. - idéias e pensamentos » Página de debug na JS Calls PHP says with Wordpress

    [...] aproveitei essa atualização para corrigir um bug reportado pelo André nas páginas de exemplos, que gerava erro no IE (o erro era nos htmls dos exemplos, nada a ver com a [...]

  15. RONALDO says with Firefox on Windows -1

    o link de download está quebrado

  16. Chris says with Firefox on Mac Os X 10.5

    Ronaldo, fiz uma migração de servidor exatamente porque o antigo não estava aceitando arquivos .zip e tinha esquecido de voltar algumas coisas… corrigi o link!
    Obrigado por avisar ;)

  17. Allan says with Firefox on Windows -1

    Ola, ja tem uma base de dados atualizada para esse ano?

    Por exemplo.. o CEP 46530000 – nao aparece nessa busca e nos correios ja aparecem.. peguei esse aleatorio, não testei outros..

    Se alguém ainda acessar esse tópico e puder responder.. agradeceria..

    Valeu!

Leave a Reply