AJAX, JSON y jQuery, llamando a funciones de PHP desde el cliente
¿Alguna vez habéis querido llamar a métodos PHP desde el lado del cliente mediante AJAX? Pues bien, es bastante sencillo y voy a explicarlo de un modo rápido. Puntualizo que para la comunicación usaré el formato JSON (Javascript Object Notation) para la toma y devolución de datos.
Para facilitar las peticiones usaremos jQuery, que ya trae en sí todo lo necesario para poder realizar este tipo de petición. Primero vamos a crear una función en PHP que multiplique dos números, tal que así:
function Multiplicar(a,b) { return a*b; }
Hasta aquí supongo que todos hemos llegado. Ahora viene lo divertido… Creamos la parte de cliente, en Javascript, una vez hayamos incrustado la librería de jQuery en nuestra página:
function DoMultiplicar(p_a,p_b)
{
$.post(ruta_al_servicio, {a:p_a,b:p_b,cmd:”multiplica”},
function(data)
{
eval(“var obj = ” + data + “;”);
alert(data.result);
}
, “json”);
}
Y procesamos la petición en PHP:
if ($_POST["cmd"] == “multiplica”)
Multiplicar($_POST["a"],$_POST["b"]);
Vale, pero, ¿qué ha hecho todo esto? Pues muy sencillo… Por la parte de Javascript, hemos llamado al método $.post, al cuál le hemos pasado como parámetros, en el mismo orden:
- Ruta al servicio: ruta absoluta al fichero PHP que controla la petición por POST, y que se encarga de la llamada al método Multiplicar.
- Parámetros: mediante la notación de objetos de Javascript (JSON), introducimos los difentes parámetros que usará nuestro script de servidor. Para los que no estén familiarizados con JSON, es un protocolo de declaración de objetos de Javascript, que permite crear una estructura de objeto mediante una cadena sencilla, rodeada por llaves, donde cada miembro se separa por comas. Para más información, consultar la página oficial de JSON, donde apareden numerosos ejemplos con los que aprender.
- Método callback: función que recoge, en este caso, el resultado de la petición. Lo hemos llamado data, pero podéis llamarlo como mejor os venga para vuestro trabajo: el parámetro que recibe será siempre la respuesta del servidor.
Una vez recogido el resultado con el callback, ya lo tenemos: el resultado de la multiplicación. Si tenéis dudas, no tengáis problema en dejar comentarios… aunque sé que este pequeño tutorial es sencillo y básico para muchos
, puede que para otros no tanto.














