Login:

iMasters | Por uma internet mais criativa e dinâmica

Feeds

PHP

Feed da seção PHP

Newsletter de PHP


Quinta-feira, 10/07/2008 - 10:30 - Por André Rodrigues
Seções relacionadas:

Buscar CEP online com XAJAX

Olá amigos. Gostaria de compartilhar com todos um assunto procurado por muitos e poucas vezes solucionado de uma forma eficiente. Como buscar ceps online, de forma fácil, com XAJAX.

O que você precisa?

  • Conhecimentos básicos em PHP;
  • Conhecimentos básicos na utilização do XAJAX;
  • Um web service online de ceps: www.buscarcep.com.br.

Com um web service conhecido, basta saber como enviar o cep, e receber o retorno dos dados do mesmo. No nosso caso, utilizaremos o www.buscarcep.com.br onde podemos buscar o cep de duas formas:

  • Query string;
  • ou XML.

Neste primeiro momento iremos tratar a forma mais simples, por retorno de uma string, que será tratada por funções do PHP e então adicionado aos campos via XAJAX, sem que seja necessário recarregar nossa página. Vamos ao 1º arquivo:


<?php
// Função que busca o cep e retorna array
function busca_cep($cep){   
	$resultado = file_get_contents('http://www.buscarcep.com.br/?cep='.urlencode($cep).'&formato=string');
	if(!$resultado){
		$resultado = "&resultado=0&resultado_txt=erro+ao+buscar+cep";
		echo "<script>\n alert(\"Web service de busca de CEP temporariamente indisponível!\"); \n</script>";
	}
	parse_str($resultado, $retorno);
	return $retorno;
}
?>

Esta função acima faz algo bem simples. Ela recebe o parâmetro $cep e com ele faz uma leitura de um link (o qual obtivemos olhando a documentação do site www.buscarcep.com.br) utilizando a função file_get_contents() do PHP. Esta função, por sua vez, recebe os parâmetros em formato de texto, e os mesmos são atribuidos a variável $resultado. Em seguida utilizamos a funcão parse_str() do PHP para converter a string recebida em uma variável do tipo array e retornamos esse array.

2º arquivo:


<?php
require "./ajax/xajax_core/xajax.inc.php"; // XAJAX
require "./funBuscarCep.php"; // Função que faz a busca do cep

$ajax = new xajax();
$ajax->registerFunction("buscaCep");

##################################### BUSCA CEP #####################################
function buscaCep($cep, $endereco, $bairro, $cidade, $estado){
	
	//Instancia o objeto XAJAX response
	$objResponse = new xajaxResponse('ISO-8859-1');
	
	if(empty($cep)){
		return $objResponse;
	}

	$cep = str_replace("-", "", $cep);

	$resultado_busca = busca_cep($cep); // Retorna um array
	
	// Coloca os valores dos arrays nos campos do formulário
	$objResponse->assign($endereco, "value", $resultado_busca['tipo_logradouro']." ".$resultado_busca['logradouro']);
	$objResponse->assign($bairro, "value", $resultado_busca['bairro']);
	$objResponse->assign($cidade, "value", $resultado_busca['cidade']);
	$objResponse->assign($estado, "value", $resultado_busca['uf']);

	// Retorna a resposta de XML gerada pelo objeto do xajaxResponse
	return $objResponse;
}

// Manda o ajax processar os pedidos acima
$ajax->processRequest();

$ajax->printJavascript('./ajax/');
?>

Neste arquivo temos uma função em xajax chamada buscarCep(), a qual é responsável por receber do formulário o cep e os nomes dos campos de endereço, bairro, cidade e estado, para que, após o retorno da função que busca o cep no web service, os dados sejam atribuidos aos campos sem precisar recarregar a página. Simples assim!

Veja neste link esse código funcionando.

Clique aqui ou aqui e faça download dos scripts.

Grande abraço a todos.

Todos os artigos de André Rodrigues

1 comentários publicados

  • 1. Muito bom!

    Domingo, 13/07/2008, por Bruno Henri Garcia Viterbo

    Cara parabéns achei muito interessante e útil!

    Responder comentário

Poste um comentário


Os textos publicados neste espaço são de responsabilidade única de seus autores (colunistas e leitores) e podem não expressar necessariamente a opinião do iMasters.

Sobre o autor

André Rodrigues trabalha com programação para web desde 1999. É graduando em Sistemas de Informação pela UNIPAC - Universidade Presidente Antônio Carlos de Ipatinga MG, trabalha como analista desenvolvedor de sites e sistemas web com o Grupo Host-Up.com.


Indique para um amigo

captcha

TI SHOP Produtos iMasters

  • Lançamento: CD-ROM Treinamento Aplicado de SQL - Lançamento! Treinamento Aplicado de SQL - Aprenda a trabalhar com SQL com bancos de dados Oracle e SQL Server. São mais de 100 tópicos explicados por Mauro Pichilliani, um articulistas mais lidos do iMasters. Aproveite! Apenas R$ 69,90 no TI SHOP.
  • Lançamento: Livro iMasters "O Encontro de 2 Mundos"- Este livro conta com 56 crônicas de profissionais mais admirados e influentes do mercado brasileiro de Internet. Aproveite o preço especial para leitores do iMasters. Apenas R$ 40,00 e envio imediato!
  • DVD Curso Completo de Photoshop - Do conceito à finalização Lançamento! Curso Completo de Photoshop, em DVD, com mais de 230 aulas dividas em 4 módulos: conceito, básico, avançado e finalização. Apenas R$ 69,50 no TI SHOP - Frete com 50% de desconto
  • DVD Javascript Starter - Curso Completo Com mais de 9 horas de vídeo-aulas, é um curso completo sobre Javascript. Ideal para quem deseja aprender a linguagem. Apenas R$ 64,90 no TI SHOP - Frete com 50% de desconto!

2001 - iMasters FFPA Informática Ltda - Todos os direitos reservados.