Fernando Godoy

Engenharia Backend para Sistemas de Alta Escala

Blog

Busca CEP com Clean Ajax

23 de jun. de 20122 min de leitura

AjaxClean AjaxExemplo Clean AjaxExemplosJavascript

Recentemente precisei pesquisar algo sobre o Clean Ajax para um trabalho da pós-graduação e como não encontrei muitos exemplos resolvi disponibilizar o exemplo bem simples que desenvolvi para este trabalho.

Formulário

<!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=ISO-8859-1" />
    <meta http-equiv="Content-Type" content="text/javascript; charset=ISO-8859-1" />
    <script src="clean/clean-ajax-all.js">
    </script>
    <script src="scriptbuscacep.js"> </script>

Javascript responsável pela comunicação com o clean ajax

function success(obj){

  if(obj.cidade == null){

    alert("Cep informado inválido");

  }else{

    document.forms[&apos;formbuscacep&apos;].resultcidade.value = obj.cidade;

    document.forms[&apos;formbuscacep&apos;].resultestado.value = obj.uf;

  }

}

function error(obj){

  alert("Error: " + obj["faultString"]);

}

function showError(e){

  alert(e);

}

function buscacep(cep, method){

  var message = Clean.createSimpleMessage("servicecep.php", "", showError);

  var rpc = new RemoteMethod();

  rpc.protocol = "XMLRPC";

  rpc.name = method;

  rpc.addParam(cep);

  rpc.onResult = success;

  rpc.onError = error;

  Clean.callWebService(message, rpc);

}

E o service que faz a busca no webservice de cep

<?php

require_once("xmlrpc.php");

$xmlrpc_methods = array();

$xmlrpc_methods['buscacep'] = 'buscacep';

$xmlrpc_request = XMLRPC_parse($HTTP_RAW_POST_DATA);

$methodName = XMLRPC_getMethodName($xmlrpc_request);

$params = XMLRPC_getParams($xmlrpc_request);

if (isset($xmlrpc_methods[$methodName])) {

$xmlrpc_methods[$methodName]($params);

}

function buscacep($params) {

if (is_numeric($params[0])) {

$resultado = @file_get_contents('http://republicavirtual.com.br/web_cep.php?cep=' .$params[0]. '&formato=query_string');

parse_str($resultado, $retorno);

XMLRPC_response(XMLRPC_prepare($retorno), WEBLOG_XMLRPC_USERAGENT);

} else {

XMLRPC_error("1", "Invalid parameters", WEBLOG_XMLRPC_USERAGENT);

}

}

?>

Para rodar o exemplo sera necessário as libs do Clean Ajax que você consegue encontrar nesse link, juntamente com o arquivo XMLRPC que também pode baixar no próprio site do Clean Ajax.

Abraço e até o próximo post