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>
a
<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"];
}
}
?>