Programación Web en cliente

Integración en una web con AJAX

Podemos utilizar el script desarrollado antes para utilizarlo en una página que realice peticiones AJAX para comunicarse con el Web Service y obtener los cambios de divisas en tiempo real. Consistirá en un formulario con un campo importe y dos combobox para las divisas. Emplearemos el frameWork jQuery de javaScript para las peticiones XMLhttp. A continuación se muestra el resultado y el código de este ejemplo:

Código HTML y Javascript (conversor.html):

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd">
<html>
   <head>
      <meta http-equiv="Content-Type" content="text/html; 
         charset=ISO-8859-1">
      <title>Ejemplo Conversor Divisas Con WebService</title>
      <script type="text/JavaScript" src="jquery.js"></script>
      <script>
         function consultarWebService()
         {
            var url = "requestWebService.php";
            var pars = "desde="
               +$('#desde').val()
               +"&hasta="
               +$('#hasta').val()
               +"&cantidad="
               +$('#cantidad').val();
            $('#valor').innerHTML = "Calculando...";
            $.post(url,pars,cambiarCantidad);

            return false;
         }

         function cambiarCantidad(response)
         {
            $('#valor').html(response);
         }
      </script>
   </head>
   <body>
      <form onSubmit="return consultarWebService();">
         <input type="text" id="cantidad" name="cantidad"/>
         <select name="desde" id="desde">
            <option value="USD">Dolar</option>
            <option value="EUR">Euro</option>
         </select>
         &nbsp;a&nbsp;
         <select name="hasta" id="hasta">
            <option value="USD">Dolar</option>
            <option value="EUR">Euro</option>
         </select>
         son
         <span id="valor">0.0</span>
         <br>
         <input type="submit" value="calcular" />
      </form>
   </body>
</html>

Código PHP (requestWebService.php):

<?php
require_once('lib/nusoap.php'); //Incluimos la libreria nuSOAP

//Para evitar los STRICTS y WARNINGS especificamos la zona horaria
date_default_timezone_set("Europe/Madrid");

//Direccion donde se encuentra el documento WSDL
$serverpath ='http://www.webservicex.com/CurrencyConvertor.asmx?wsdl';

//Hacemos la peticion de conexion al web service de 
//cambio de divisas, pasamos la direccion donde
//se encuentra el archivo WDSL y especificamos 
//que se trata de este tipo de archivo
$cliente = new nusoap_client($serverpath,true);

//Comprobamos que no ha ocurrido ningun error
$error = $cliente->getError();
if($error!="")
{
   //Mostramos los errores
   echo "OCURRIO UN ERROR: ".$error;
}
else{
   //Llamamos al metodo 'ConversionRate' pasamos como parametro 
   //USD y EUR, ademas especificamos el namespace
   // como "http://www.webserviceX.NET/"
   $par = array("FromCurrency"=>
      $_POST["desde"],"ToCurrency"=>
      $_POST["hasta"]);
   $respuesta = $cliente->call('ConversionRate',
   $par,"http://www.webserviceX.NET/");

   //Comprobamos que no ha ocurrido ningun error
   $error = $cliente->getError();
   if($error!="")
   {
      //Mostramos los errores
      echo "OCURRIO UN ERROR: ".$error;
   }
   else
   {
      //Mostramos el cambio
      echo $_POST["cantidad"]*$respuesta["ConversionRateResult"];
   }
}
?>