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> <title>Busca Cep com Clean Ajax</title> </head> <body> <br /> <br /> <center> <p><b>Busca Cep Por Web Service</b></p> <form name="formbuscacep"> <p><input type="text" size="15" maxlength="8" name="cep"> </input> <input type="hidden" size="15" name="operation" value="buscacep"> </input> <input type="button" value=" Buscar " onclick="buscacep(formbuscacep.cep.value, formbuscacep.operation.value);"> </input> <input type="text" size="30" name="resultcidade"> </input> <input type="text" size="5" name="resultestado"> </input> </p> </form> </center> </body> </html>
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['formbuscacep'].resultcidade.value = obj.cidade; document.forms['formbuscacep'].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
Noa conhecia o Clean Ajax, parabéns pelo artigo.
Aproveito e deixo a dica de um webservice de CEP com exemplo em Ajax utilizando JQuery.
http://viacep.com.br/exemplo/jquery/
Att.
CurtirCurtir