Tutorial de AJAX (Asynchronous JavaScript + XML) - Recibiendo los resultados del procesador
27 de Octubre de 2005
JavaScript, XML
Hay dos maneras en las que se puede recibir la informacion devuelta por el procesador, las propiedades: responseText y responseXML
procesador
PHP [inicio]
- responseText: Con esta propiedad se reciben los datos de la siguiente manera. Cuando el estado del proceso esté en el nivel 4
vari=objetus.responseText
Entonces aqui la variable vari contendrá el resultado del procesador.
Ejemplo:------##window.alert(vari)##------Esto es lo que usamos en nuestro primer ejemplo, aqui cuando el proceso llega a nivel 4 creamos un alert con los datos que nos a enviado el procesador.
- responseXML:
Con esta propiedad el procesador nos devuelve los datos como XML y debemos recorrerlo mediante las funciones del DOM (getEementsByTagName, etc).
vari=objetus.responseXML
Guardamos el documento devuelto en la variable vari para luego recorrerla,en el caso para nuestro ejemplo el documento XML del procesador tendrá la siguente estructura:
<serv> <ip>ip</ip> <uri>uri </uri> <date>date</date> </serv>
var _ip = vari.getElementsByTagName('ip').item().firstChild.data;
var _uri = vari.getElementsByTagName('uri').item().firstChild.data;
var _date = vari.getElementsByTagName('date').item().firstChild.data;
Entonces mostraremos: window.alert(_ip+"\n"+_uri+"\n"+_date)
Hagamos el ejemplo1∞ con responseXML
Ejemplo 1-b
cliente
PHP [inicio]- <script language="javascript" type="text/javascript">
- funcion encargada de crear el objeto
- function objetus() {
- try {
- objetus = new ActiveXObject("Msxml2.XMLHTTP");
- } catch (e) {
- try {
- objetus= new ActiveXObject("Microsoft.XMLHTTP");
- } catch (E) {
- objetus= false;
- }
- }
- if (!objetus && typeof XMLHttpRequest!='undefined') {
- objetus = new XMLHttpRequest();
- }
- return objetus
- }
- la funcion que hará el trabajo sucio
- esta funcion es la que llamamos en el evento ONCLICK de nuestro boton
- function primer_tope()
- {
- creamos el objeto
- _objetus=objetus()
- cargamos una varible con las variables que vamos a enviar
- _values_send="funcion=pt"
- _URL_="proceso.php?"
- _objetus.open("GET",_URL_+"&"+_values_send,true);
- una vez enviado los valores inmediatamente llamamos a la propiedad
- onreadystatechange
- _objetus.onreadystatechange=function() {
- dentro de la funcion comprobamos el estado del proceso
- si es 4 (terminado) pedimos lo que nos han mandado
- if (_objetus.readyState
4)
- {
- si se da un status 200 (TERMINADO CON EXITO)
- if(_objetus.status 200)
- {
- usamos la propiedad responseText para recibir en una cadena
- lo que nos mandaron
- window.alert(_objetus.responseText);
- }
- }
- }
- obligatorio .... luego explicarè el porque
- _objetus.send(null);
- }
- function primer_topeXML()
- {
- _objetus=monitor_get_xmlhttp()
- _values_send="funcion=ptxml"
- _URL_="ajax_tut.php?"
- _objetus.open("GET",_URL_+"&"+_values_send,true);
- _objetus.overrideMimeType("text/xml");
- _objetus.onreadystatechange=function() {
- if (_objetus.readyState
4)
- {
- if(_objetus.status 200)
- {
- var vari=_objetus.responseXML;
- var _ip = vari.getElementsByTagName('ip').item().firstChild.data;
- var _uri = vari.getElementsByTagName('uri').item().firstChild.data;
- var _date = vari.getElementsByTagName('date').item().firstChild.data;
- window.alert(_ip+"\n"+_uri+"\n"+_date);
- }
- }
- }
- _objetus.send(null);
- return
- }
- </script>
- <input type="button" name="visual" value="Pedir datos con rexponseText" class="boton" onclick="primer_tope();">
- <input type="button" name="visual" value="Pedir datos con rexponseXML" class="boton" onclick="primer_topeXML();">
- <!-- mas documento HTML -->
procesador
PHP [inicio]
- <?php
- if(isset($_GET['funcion']))
- {
- $_valor=$_GET['funcion'];
- if($_valor
"pt")
- {
- $_pt="Tu ip: ".htmlspecialchars($_SERVER['REMOTE_ADDR'])."\n";
- $_pt.="request_uri: ".htmlspecialchars($_SERVER['REQUEST_URI'])."\n";
- $_pt.="date(): ".htmlspecialchars(date("d-m-Y : H-i-s"))."\n";
- echo $_pt;
- }
- elseif ($_valor "ptxml")
- {
- $_xml="<?xml version=\"1.0\" standalone=\"yes\"?>\n";
- $_xml.="<serv>\n";
- $_xml.="<ip>Tu ip: ".htmlspecialchars($_SERVER['REMOTE_ADDR'])."</ip>\n";
- $_xml.="<uri>request_uri: ".htmlspecialchars($_SERVER['REQUEST_URI'])."</uri>\n";
- $_xml.="<date>date(): ".htmlspecialchars(date("d-m-Y : H-i-s"))."</date>\n";
- $_xml.="</serv>\n";
- mandamemos cabeceras identificando al documento
- como un documento XML
- header('Content-Type: text/xml');
- echo $_xml;
- }
- else
- {
- echo "No enviaste ningun valor ACEPTABLE";
- }
- }
- else
- {
- echo "No se a enviado valor alguno de peticion";
- }
- ?>
Valora este capítulo:
Autor y licencia de 'Tutorial de AJAX (Asynchronous JavaScript + XML) - Recibiendo los resultados del procesador'
|
Opiniona sobre 'Tutorial de AJAX (Asynchronous JavaScript + XML) - Recibiendo los resultados del procesador' (41)
Tu nombre debe tener tres caracteres como mínimo.
Es necesario que te des de alta con una cuenta de correo válida.
Es necesario que te des de alta con una cuenta de correo válida.
El contenido del título de tu opinión debe tener tres caracteres como mínimo.
Es obligatorio que selecciones una valoración del recurso.
El contenido del comentario de tu opinión debe tener tres caracteres como mínimo.
Opina sobre este tutorial |
Wikis relacionados con 'Tutorial de AJAX (Asynchronous JavaScript + XML) - Recibiendo los resultados del procesador'
Amplio tutorial de Java para empezar a trabajar y ampliar conocimientos de este lenguaje.
Recientes investigaciones sugieren que los mejores directivos utilizan una gama de estilos de dirección distintos...
Más »
Este tutorial presenta los conceptos básicos de líneas de transmisión (Transmission lines), así como una...
Más »
Si tuviera que buscar un adjetivo para calificar a Sendmail, pensaría en "excesivo". Excesivo puesto...
Más »
PHP se ha convertido en el lenguaje de facto de Internet y no es difícil...
Más »

