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