Está en la página 1de 21

0002 AJAX PHP POSTGRESQL I La explicacin de lo que es AJAX va ms all de este tema, por "San" google podrn encontrar

ar referencias excelentes de qu es AJAX y su historia. En este artculo se va a mostrar el funcionamiento bsico de AJAX puro y duro, los frameworks los veremos ms adelante. Espero que les guste. En este ejemplo se establece la comunicacin por medio del mtodo "POST". Lo primero es, tener claro lo que se va a realizar en este artculo y para eso he realizado el siguiente diagrama con MS-Visio:

Explicacin: 1. El cliente llama al servidor para visualizar la pgina "html", (testhtml.html), que contiene la informacin.

2. La pgina testhtml.html contiene un link que al hacer "click" en l, ste hace la llamada a la funcin correspondiente para obtener los datos que el usuario busca. 3. La funcin javascript se encarga de llamar al script php, (testphp.php). El script php contiene la conexin a la base de datos y la consulta SQL que trae los datos de la tabla. 4. El script testphp.php se ejecuta, ste llama a la base de datos "pruebas" tabla "prueba" y devuelve el resultado a la funcin javascript que hizo la llamada, (fDatos(id, url)),desde el script javascript, (testajax.js) luego se actualiza la pgina "html" con los resultados obtenidos. 5. El cliente visualiza el nuevo resultado. Cdigo SQL:

CREATE TABLE prueba ( id integer NOT NULL, nombre character varying(50), apellido character varying(50), cedula character varying(10) ); --Recuerden aadir datos a la tabla...

Cdigo HTML (testhtml.html):

<!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=utf-8" /> <title>Prueba de [ AJAX - PHP - POSTGRESQL ]</title> <script language="javascript" src="testajax.js" type="application/javascript"></script> </head> <body style="background-color:#366;"> <table border="0" style="color:white; background-color:#000;" align="center"> <tr> <td colspan="2" align="center"> <strong>Prueba de:</strong><span style="color:#F00; font-weight:bolder;">[ AJAX - PHP - POSTGRESQL ]</span> </td> </tr> <tr> <td colspan="2"> <div id="contenido" style="color:#1FE4EF; font-family:'Times New Roman', Times, serif;"></div> </td> </tr> <tr> <td align="center"> <a href="#" onclick="javascript:fDatos('contenido','testphp.php');" style="color:#0F0; text-decoration:none;">[ Mostrar datos ]</a> </td> <td align="center"> <a href="#" onclick="javascript:fBorrar('contenido');" style="color:#F00;

text-decoration:none;">[ Limpiar contenido ]</a> </td> </tr> </table> </body> </html>

Cdigo JavaScript (testajax.js):

/*------------------------------------------------------*/ //Funcin para crear el objeto Ajax. // /*------------------------------------------------------*/ function nuevoAjax() { var xmlhttp=false; try { xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) { xmlhttp = false; } } if (!xmlhttp && typeof XMLHttpRequest!='undefined') { xmlhttp = new XMLHttpRequest(); } return xmlhttp; } /*------------------------------------------------------*/ //id: id del control div que va a recibir los datos. // //url: Direccin url de la pgina donde se // // obtiene los datos. // /*------------------------------------------------------*/ function fDatos(id, url) { var objDiv = document.getElementById(id); ajax = nuevoAjax(); ajax.open("POST", url, true); ajax.onreadystatechange = function() { switch (ajax.readyState) { case 0: objDiv.innerHTML = 'Error 0. No se ha abierto la comunicaci&oacute;n.';

break; case 1: objDiv.innerHTML = 'Por favor, espere. Cargando...'; break; case 2: objDiv.innerHTML = 'Petici&oacute;n cargada, esperando respuesta del servidor...'; break; case 3: objDiv.innerHTML = ''; break; case 4: if(ajax.status == 200) { objDiv.innerHTML = ""; objDiv.innerHTML = ajax.responseText; } else { objDiv.innerHTML = 'Error 200'; } break; } } ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); ajax.send(); } /*------------------------------------------------------*/ //Borrar los datos de la celda en la pgina web... // /*------------------------------------------------------*/ function fBorrar(id) { document.getElementById(id).innerHTML = ""; }

La funcin nuevoAjax() es la funcin estndar que sirve para crear el objeto ajax que se encarga de la actualizacin del contenido de forma asincrnica, o sea, que un elemento de la pgina se actualice sin que el resto de la pgina se vea afectada. La funcin fDatos(id, url) es la funcin que se encarga de obtener los datos del script de php para poder visualizarlo en la pgina html, (testhtml.html). El parmetro "id" contiene el nombre de la etiqueta "DIV" con el nombre "contenido" de la pgina testhtml.html. El parmetro "url" contiene la direccin del script php que se va a ejecutar, en este caso es testphp.php. La funcin fBorrar(id), denominado "contenido". Cdigo PHP testphp.php: borra el contenido de la etiqueta "DIV"

<?php //Conexin a la BBDD en postgreSQL...

$conbd = pg_connect("host=localhost port=5432 dbname=pruebas user=tuusuario password=tupassword") or die(pg_last_error()); $sql = "SELECT * FROM prueba;"; //Consulta SQL... $res = pg_query($conbd, $sql); if($res) { $html = "<table border=\"1\">"; $html .= "<tr>"; $html .= "<td align=\"center\"> [ ID ] </td>"; $html .= "<td align=\"center\"> [ NOMBRE ] </td>"; $html .= "<td align=\"center\"> [ APELLIDO ] </td>"; $html .= "<td align=\"center\"> [ C&Eacute;DULA ] </td>"; $html .= "</tr>"; while($val = pg_fetch_array($res)) { $html .= "<tr><td>" . $val[0] . "</td><td>" . $val[1] . "</td><td>" . $val[2] . "</td><td>" . $val[3] . "</td></tr>"; } $html .= "</table>"; pg_close($conbd); echo $html; } ?>

El cdigo php muestra la conexin a la base de datos con la funcin "pg_connect()", la variable "$sql" contiene la cadena de consulta SQL para obtener los datos y la variable "$html" contiene una cadena de caracteres con el cdigo HTML ms el resultado de la consulta que es devuelta por medio del comando "echo". "$html" es la variable que se devuelve a la funcin de javascript fDatos(id, url). fDatos(id, url) se encarga de actualizar la pgina html por medio del siguiente mtodo "innerHTML" que pertenece al objeto document.getElmentId(). Elementos de la funcin fDatos(id, url) - AJAX:

Ajax = nuevoAjax() para crear el objeto ajax. Ajax.open: Mtodo que abre el script para obtener los datos. Ajax.onreadystatechange: Mtodo que se encarga de evaluar el estado del script que se ha llamado, hay 5 estados posibles: o 0: No se ha abierto la comunicacin con el script seleccionado. o 1: Estado en espera. o 2: La peticin est cargando, esperando respuesta del servidor. o 3: Estado interactivo. o 4: Comprobar el status de la respuesta, si es 200 todo ok, si no, hubo un fallo. Ajax.setRequestHeader: el formato de la cabecera del archivo para procesar los datos.

Ajax.send(): Para enviar parmetros al script php. Ms adelante colocar un ejemplo de cmo usar este mtodo.

Para ms informacin sobre AJAX, pueden visitar la siguiente pgina: librosweb Conclusin: Usar AJAX es realmente muy sencillo slo hay que tener claro cmo funciona bsicamente el proceso de comunicacin, aqu les dejo un pequeo resumen visual del proceso. Peticin de datos:

Recepcin de datos:

De momento esto es todo, recuerden que "San" google les puede proveer ms informacin, esto es slo un ejemplo de lo que se puede hacer con AJAX PHP POSTGRESQL sin usar ningn framework. Un cordial saludo. Firma: XDRTAS

0006 AJAX PHP POSTGRESQL II

En este segundo tutorial sobre AJAX PHP PostgreSQL se van a tratar los siguientes puntos:

1. Mostrar el contenido de la pgina "index.html" dependiendo de un parmetro seleccionado por el usuario.

2. Enviar un parmetro a travs de AJAX al script de PHP por medio de POST.

3. Guardar el resultado de la consulta SQL en formato XML y leer el contenido del resultado mediante AJAX.

4. Leer etiquetas HTML contenidos en el XML resultante. 5. Leer caracteres especiales HTML, (, , , , ), contenidos en el archivo XML dentro de los etiquetas HTML. Cdigo de la tabla ajax:

CREATE TABLE ajax ( id serial NOT NULL, nombre character varying(50), apellido character varying, cedula character varying(8), sexo boolean, CONSTRAINT pid PRIMARY KEY (id) ) WITH ( OIDS=FALSE ); ALTER TABLE ajax OWNER TO postgres;

INSERT INTO ajax (id, nombre, apellido, cedula, sexo) VALUES (1, 'David', 'Lastra', '14852152', true); INSERT INTO ajax (id, nombre, apellido, cedula, sexo) VALUES (2, 'David', 'Lastra', '14852152', true); INSERT INTO ajax (id, nombre, apellido, cedula, sexo) VALUES (3, 'David', 'Lastra', '14852152', true); INSERT INTO ajax (id, nombre, apellido, cedula, sexo) VALUES (4, 'David', 'Lastra', '14852152', true); INSERT INTO ajax (id, nombre, apellido, cedula, sexo) VALUES (5, 'David', 'Lastra', '14852152', true); INSERT INTO ajax (id, nombre, apellido, cedula, sexo) VALUES (6, 'Miss', 'Universo', '11111111', false); INSERT INTO ajax (id, nombre, apellido, cedula, sexo) VALUES (7, 'Miss', 'Universo', '11111111', false); INSERT INTO ajax (id, nombre, apellido, cedula, sexo) VALUES (8, 'Miss',

'Universo', '11111111', false); INSERT INTO ajax (id, nombre, apellido, cedula, sexo) VALUES (9, 'Miss', 'Universo', '11111111', false); INSERT INTO ajax (id, nombre, apellido, cedula, sexo) VALUES (10, 'Miss', 'Universo', '11111111', false); INSERT INTO ajax (id, nombre, apellido, cedula, sexo) VALUES (11, 'Miss', 'Universo', '11111111', false); INSERT INTO ajax (id, nombre, apellido, cedula, sexo) VALUES (12, 'David', 'Lastra', '14852152', true); INSERT INTO ajax (id, nombre, apellido, cedula, sexo) VALUES (13, 'David', 'Lastra', '14852152', true); INSERT INTO ajax (id, nombre, apellido, cedula, sexo) VALUES (14, 'David', 'Lastra', '14852152', true); INSERT INTO ajax (id, nombre, apellido, cedula, sexo) VALUES (15, 'David', 'Lastra', '14852152', true); INSERT INTO ajax (id, nombre, apellido, cedula, sexo) VALUES (16, 'Miss', 'Universo', '11111111', false); INSERT INTO ajax (id, nombre, apellido, cedula, sexo) VALUES (17, 'Miss', 'Universo', '11111111', false); INSERT INTO ajax (id, nombre, apellido, cedula, sexo) VALUES (18, 'Miss', 'Universo', '11111111', false); INSERT INTO ajax (id, nombre, apellido, cedula, sexo) VALUES (19, 'Miss', 'Universo', '11111111', false); INSERT INTO ajax (id, nombre, apellido, cedula, sexo) VALUES (20, 'Miss', 'Universo', '11111111', false); INSERT INTO ajax (id, nombre, apellido, cedula, sexo) VALUES (21, 'Miss', 'Universo', '11111111', false);

La primera parte consta de la creacin de la tabla con el nombre de "ajax" en minsculas. La segunda parte es la insercin de datos para trabajar con los mismos desde los scripts.

Cdigo index.html:

<!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=utf-8" /> <title>Prueba de [ AJAX - PHP - POSTGRESQL II]</title> <script language="javascript" src="js/ajax.js" type="application/javascript"></script> </head> <body style="background-color:#366;"> <table border="0" style="color:white; background-color:#000;" align="center"> <tr> <td colspan="2" align="center"> <strong>Prueba de:</strong><span style="color:#F00; font-weight:bolder;">[ AJAX - PHP - POSTGRESQL II]</span> </td> </tr> <tr> <td colspan="2"> <div id="contenido" style="color:#1FE4EF; font-family:'Times New Roman', Times, serif;"></div> </td> </tr> <tr> <td align="center"> <form action="#" name="frmSexo"> <select name="sexo"><option value="true" >Hombre</option><option value="false">Mujer</option></select> </form> <hr /> <a href="#" onclick="javascript:fDatos('contenido',frmSexo.sexo.options[frmSexo.sexo.selectedIn dex].value ,'ajax.php');" style="color:#0F0; text-decoration:none;">[ Mostrar datos

]</a> </td> <td align="center"> <a href="#" onclick="javascript:fBorrar('contenido');" style="color:#F00; text-decoration:none;">[ Limpiar contenido ]</a> </td> </tr> </table> </body> </html>

Las etiquetas HTML ms importantes que se muestran arriba estn resaltadas en colores.

1. <script language>: para indicar donde se encuentra el archivo javascript con las funciones a usar. 2. <div id="contenido">: el contenido de este div es el que se va a modificar por medio de las funciones "fDatos" y "fBorrar" de javascript. 3. <form name="frmSexo">: formulario con un campo select para seleccionar los datos de las personas de la tabla "ajax" segn el sexo. 4. <a href="#" onclick="javascript:fDatos>: Al hacer "click" en ste link se inicia el proceso para la carga de datos mediante AJAX en el DIV correspondiente. 5. <a href="#" onclick="javascript:fBorrar>: Al hacer "click" en ste link se borra el contenido del DIV. 6. fDatos('contenido',frmSexo.sexo.options[frmSexo.sexo.selectedIndex].va lue ,'ajax.php');: 1. fDatos: nombre de la funcin javascript. 2. 'contenido': nombre de la etiqueta DIV donde se va a modificar el contenido.

3. frmSexo.sexo.options[].value: El valor seleccionado por el usuario en el men desplegable, (frmSexo.sexo.options es un array para poder acceder a los posibles valores), los posibles valores para este caso son: true - "Hombre", false "Mujer". 4. frmSexo.sexo.selectedIndex: Sirve para indicar cul es la opcin actualmente seleccionada por el usuario. El valor seleccionado del men desplegable, (0 - true, 1 - false). 5. frmSexo.sexo.options[ frmSexo.sexo.selectedIndex ].value = true o false. 7. fBorrar('contenido'): Funcin que se encarga de borrar el contenido al DIV seleccionado.

Cdigo ajax.js:

/*------------------------------------------------------*/ //Funcin para crear el objeto Ajax. //

/*------------------------------------------------------*/ function nuevoAjax() { var xmlhttp=false; try { xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) { xmlhttp = false;

} }

if (!xmlhttp && typeof XMLHttpRequest!='undefined') { xmlhttp = new XMLHttpRequest(); } return xmlhttp; }

/*------------------------------------------------------*/ //id: id del control div que va a recibir los datos. //sexo: verdadero o falso, filtro booleando para la //carga de datos segn el campo sexo. //url: Direccin url de la pgina donde se //obtiene los datos. // // // // //

/*------------------------------------------------------*/ function fDatos(id, sexo, url) { var objDiv = document.getElementById(id); var objXML = null; var objTBL = null;

if (sexo == 'true') sexo = true; else sexo = false;

ajax = nuevoAjax();

ajax.open("POST", url, true);

ajax.onreadystatechange = function() { switch (ajax.readyState) { case 0: objDiv.innerHTML = 'Error 0. No se ha abierto la comunicaci&oacute;n.'; break; case 1: objDiv.innerHTML = 'Por favor, espere. Cargando...'; break; case 2: objDiv.innerHTML = 'Petici&oacute;n cargada, esperando respuesta del servidor...'; break; case 3: objDiv.innerHTML = ''; break; case 4: if(ajax.status == 200) { try { objDiv.innerHTML = "Datos a mostrar... <hr />"; objXML = ajax.responseXML; objTBL = objXML.getElementsByTagName('tabla');

objDiv.innerHTML += objTBL[0].firstChild.nodeValue; objDiv.innerHTML += "<hr />"; } catch (e) { objDiv.innerHTML += e.toString() + " Error al recibir datos de archivo XML..."; } } else { objDiv.innerHTML = 'Error 200'; } break; } } ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); ajax.send("sexo="+sexo); }

/*------------------------------------------------------*/ //Borrar los datos de la celda en la pgina web... //

/*------------------------------------------------------*/ function fBorrar(id) { document.getElementById(id).innerHTML = ""; }

1. Funcin nuevoAjax: Se encarga de crear el objeto AJAX para poder hacer la carga de datos de forma asincrnica.

2. Funcin fDatos: 1. Id = id del objeto DIV que se va a manipular. 2. Sexo = booleano, filtro para obtener datos segn la seleccin hecha por el usuario mediante el control SELECT del formulario de la pgina "index.html". 3. url = pgina que se va a llamar para obtener los datos deseados mediante AJAX, en este caso la pgina a llamar es "ajax.php". 4. El valor de los parmetros es colocado en la llamada a la funcin fDatos en la pgina de "index.html". 5. objXML = ajax.responseXML;: Indica que el tipo de respuesta vendr en formato XML. 6. objTBL = objXML.getElementsByTagName('tabla');: Se asigna a la variable objTBL el contenido de la etiqueta "tabla" del archivo XML. "objTBL" es un array del tamao de todas las etiquetas con el nombre "tabla" que existan en el archivo XML. (En el siguiente apartado se ver el contenido del archivo XML). 7. objDiv.innerHTML += objTBL[0].firstChild.nodeValue;: Se accede al valor del primer elemento de la variable "objTBL" y se muestra en la etiqueta DIV correspondiente, para este caso 'contenido'. 8. ajax.send("sexo="+sexo);: En el mtodo "send" del objeto "ajax" se introduce el parmetro que se va a enviar al script "ajax.php". En el caso de que se quiera enviar ms parmetros, la cadena de construccin queda con el siguiente formato: [ajax.send("nomvar1="+valvar1+"&nomvar2="+valvar2+"&nomvar3="+va lvar3 + +"&nomvarN="+valvarN)]. Hay que usar el carcter "&" para concatenar las variables. 9. "nomvar" acrnimo de nombre de variable. "valvar" acrnimo de valor de variable. 3. Funcin fBorrar: Se encarga de limpiar el contenido de la etiqueta DIV.

Cdigo ajax.php:

<?php $conbd = pg_connect("host=localhost port=5432 dbname=prueba user=tuusuario password=tucontrasea") or die(pg_last_error());

$sql = "SELECT id, nombre, apellido, cedula FROM ajax WHERE sexo = " . $_POST['sexo'] . ";";

$res = pg_query($conbd, $sql); if($res) {

if(pg_num_rows($res)>0) { header("Content-Type: text/xml"); $xml = "<?xml version='1.0' encoding='ISO-8859-1' ?>\n";

$xml .= "<datos>\n"; $xml .= "<tablas>\n"; $xml .= "<tabla>"; $xml .= "<!--<table border=\"1\">\n"; $xml .= "<tr>\n"; $xml .= "<td align=\"center\"> [ ID ] $xml .= "<td align=\"center\"> [ NOMBRE ] $xml .= "<td align=\"center\"> [ APELLIDO ] $xml .= "<td align=\"center\"> [ C&#201;DULA ] $xml .= "</tr>\n"; </td>\n"; </td>\n"; </td>\n"; </td>\n";

while($val = pg_fetch_array($res)) { $xml .= "<tr><td>" . $val[0] . "</td><td>" . $val[1] . "</td><td>" . $val[2] . "</td><td>" . $val[3] . "</td></tr>\n"; }

$xml .= "</table>-->"; $xml .= "</tabla>\n"; $xml .= "</tablas>\n"; $xml .= "</datos>\n";

echo $xml; //escribe, en resultado, un archivo XML con los datos obtenidos mediante la consulta }

pg_free_result($res); }

pg_close($conbd); ?>

En el script "ajax.php" es donde se va a crear el contenido XML con los datos que se obtienen de la consulta SQL. Se describe, a continuacin, los pasos del script "ajax.php":
1. Cadena de conexin para acceder a la base de datos con el nombre de "prueba", ($conbd: ID de conexin). 2. Cadena de consulta que tiene por filtro la variable "sexo" que viene por POST desde AJAX y se ejecuta sobre la tabla "ajax", ($sql $_POST['sexo']). 3. Ejecucin de la consulta, ($res = pg_query($conbd, $sql);). 4. Si la consulta es correcta, entonces 5. Si la consulta ha trado ms de 0 filas entonces 6. Se define la cabecera del archivo con el comando "header". "ContentType: text/xml", define los datos que siguen como contenido XML. 7. La primera lnea del archivo XML define la versin y la codificacin de caracteres. 8. Primera etiqueta: <datos>\n. 9. Segunda etiqueta: <tablas>\n. 10. Tercera etiqueta: <tabla> + cdigo embebido HTML (Siguiente punto a explicar) + </tabla>\n. 11. Cerrar segunda etiqueta: </tablas>\n. 12. Cerrar primera etiqueta: </datos>. 13. echo $xml;: Mostrar el resultado. 14. Limpiar la consulta, (pg_free_result($res);). 15. Cerrar la conexin a la base de datos, (pg_close($conbd);).

Cdigo embebido HTML: El cdigo HTML del script "ajax.php" est embebido en el XML resultante del script "ajax.php". Para que se puedan interpretar los tags HTML, el HTML embebido debe empezar como si se tratase como un comentario, como se muestra a continuacin: <!Introducir cdigo HTML aqu. -->. Esto permite la distincin entre las etiquetas XML y las etiquetas HTML. Todos las etiquetas HTML entre de "<!--" y "-->" sern ignorados como etiquetas XML pero no como etiquetas HTML, lo que permite recuperar el contenido HTML sin que entre en conflicto con las etiquetas XML. Es muy importante que se tenga presente lo siguiente: XML no puede leer, distinguir ni interpretar cdigo HTML, si dentro de un archivo XML se encuentra una etiqueta HTML como por ejemplo "<br>" o "<table>", XML lo tomar como parte del formato del documento, no como una etiqueta HTML.

1. "<!--<table border=\"1\">\n";: Inicio del comentario XML e inicio de la etiqueta <table> para definir la tabla con los resultados a mostrar. 2. "<tr>\n";: Inicio de la primera fila que contiene la cabecera de la tabla. 3. "<td align=\"center\">[ ID ]</td>\n";: Celda ID. 4. "<td align=\"center\">[ NOMBRE ]</td>\n";: Celda Nombre. 5. "<td align=\"center\">[ APELLIDO ]</td>\n";: Celda Apellido. 6. "<td align=\"center\">[ C&#201;DULA ]</td>\n";: Celda Cdula. 7. "</tr>\n";: Fin de la cabecera. 8. while($val = pg_fetch_array($res)): Bucle para obtener todas las filas devueltas por la consulta. 9. "<tr><td>" . $val[0] . "</td><td>" . $val[1] . "</td><td>" . $val[2] . "</td><td>" . $val[3] . "</td></tr>\n";: Fila y celdas con los datos obtenidos de la consulta. 10. "</table>-->";: Cierre del tag HTML "</table>" y cierre de la lnea de comentario XML "-->".

A continuacin se muestra como se vera el XML resultante, desde mozilla firefox, al ejecutar el script "ajax.php" con el parmetro "true" en la consulta SQL.

<?xml version="1.0" encoding="ISO-8859-1"?> <datos> <tablas> <tabla><!--<table border="1"> <tr> <td align="center"> [ ID ] <td align="center"> [ NOMBRE ] <td align="center"> [ APELLIDO ] <td align="center"> [ C&#201;DULA ] </tr> <tr><td>1</td><td>David</td><td>Lastra</td><td>14852152</td></tr> <tr><td>2</td><td>David</td><td>Lastra</td><td>14852152</td></tr> <tr><td>3</td><td>David</td><td>Lastra</td><td>14852152</td></tr> <tr><td>4</td><td>David</td><td>Lastra</td><td>14852152</td></tr> </td> </td> </td> </td>

<tr><td>5</td><td>David</td><td>Lastra</td><td>14852152</td></tr> <tr><td>12</td><td>David</td><td>Lastra</td><td>14852152</td></tr> <tr><td>13</td><td>David</td><td>Lastra</td><td>14852152</td></tr> <tr><td>14</td><td>David</td><td>Lastra</td><td>14852152</td></tr> <tr><td>15</td><td>David</td><td>Lastra</td><td>14852152</td></tr> </table>--></tabla> </tablas> </datos>

Caracteres especiales HTML: Dentro de las etiquetas XML se pueden encontrar fallos a la hora de usar entidades por nombre para visualizar caracteres especiales HTML, la solucin pasa por usar su equivalente entidad numrica. Si hay errores al visualizar caracteres especiales HTML dentro de las etiquetas XML como entidades por nombre, "&aacute;", siempre se puede recurrir a su equivalente entidad numrica. Por ejemplo, la palabra "Cdula" en HTML se podra escribir de la siguiente manera "C&eacute;dula", pero, con la codificacin de caracteres actual "&eacute;" no funciona dentro del XML, para solucionar este inconveniente se puede recurrir a su entidad numrica "&#201;" y quedara de la siguiente manera "C&#201;dula". Usando la correspondiente entidad numrica se puede solventar los fallos de interpretacin de las entidades por nombre de las etiquetas HTML en el contenido XML. A continuacin adjunto el link con las tablas de conversiones entre entidades por nombre y su correspondencia a entidades numricas: Tablas de conversin Resumen: En este artculo se han cubierto los siguientes puntos:

Paso de parmetros desde AJAX por POST a PHP usando el mtodo "send". Segn el parmetro seleccionado el contenido a mostrar cambia dentro de la pgina HTML. Lectura HTML embebido en XML por medio de javascript.

Guardar el resultado obtenido en la consulta SQL a formato XML. Interpretar caracteres especiales HTML embebidos en XML mediante el uso de entidades numricas en el caso de que falle la interpretacin de entidades por nombre.

Si tienen alguna duda o algo constructivo que aadir, pueden dejar un comentario o enviarme un e-mail. Un cordial saludo. Firma: XDRTAS