Foros del Web » Programando para Internet » Javascript » Frameworks JS »

Manipular XML con handler externo...

Estas en el tema de Manipular XML con handler externo... en el foro de Frameworks JS en Foros del Web. hola a todos tengo la siguiente funcion que realiza una peticion ajax: Código: function procesa(url,valores,metodo,estado,cont,rsp, handler_externo ){ var metodo=metodo.toLowerCase(); var rpta=parseInt(rsp); var cont=document.getElementById(cont); var url=(metodo=='post')?url:url+'?'+valores; ...
  #1 (permalink)  
Antiguo 07/02/2008, 09:39
Avatar de Bellenger  
Fecha de Ingreso: noviembre-2004
Ubicación: En un lugar del Mundo...
Mensajes: 599
Antigüedad: 19 años, 5 meses
Puntos: 4
Manipular XML con handler externo...

hola a todos tengo la siguiente funcion que realiza una peticion ajax:
Código:
function procesa(url,valores,metodo,estado,cont,rsp,handler_externo){
	var metodo=metodo.toLowerCase();
	var rpta=parseInt(rsp);
	var cont=document.getElementById(cont);
	var url=(metodo=='post')?url:url+'?'+valores;
	ajax.open(metodo,url,estado);
  if(rpta==0){
  	ajax.onreadystatechange=function(){
    	if(ajax.readyState==4){
  			if(ajax.status==200){ajax.responseText;}else{cont.innerHTML='Cargando...';}
   	  }
    }
	}else{
    ajax.onreadystatechange=handler_externo;
  }
	metodo=='post'?ajax.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'):'';
	ajax.send(metodo=='post'?valores:null);
}
queria saber si es posible manipular el resultado devuelto por el servidor, con una funcion externa... se podra...???
Gracias de Antemano...
__________________
Un Caballero Jura Lealtad. Usa su espada para suprimir la Injusticia No Conoce el Odio y Tampoco el AMOR...
  #2 (permalink)  
Antiguo 07/02/2008, 10:38
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: Manipular XML con handler externo...

A que te refieres con una funcion externa?

Saludos.
  #3 (permalink)  
Antiguo 07/02/2008, 11:17
Avatar de Bellenger  
Fecha de Ingreso: noviembre-2004
Ubicación: En un lugar del Mundo...
Mensajes: 599
Antigüedad: 19 años, 5 meses
Puntos: 4
Re: Manipular XML con handler externo...

Gracias por la respuesta.
Bueno basicamente cuando manejamos una respuesta XML, tenemos que adicionar codigo extra para manejar dicho xml, y generalmente este codigo extra se coloca:
Código PHP:
     ajax.onreadystatechange=function(){
        if(
ajax.readyState==4){
          if(
ajax.status==200){
             var 
doc=ajax.response.XML;
              
/**********/
                    
aqui el codigo para manipular el xml
              
/**********/
          
}
     } 
como se ve, ese codigo extra cambia la anatomia de la funcion mostrada anteriormente. puesto que se debera agregar codigo para menejar directamente el objeto que recibira la respuesta. Por eso la idea de asignar un manejador externo :
Código PHP:
    ajax.onreadystatechange=handler_externo
cuando la respuesta sea un xml, este manejador externo basicamente trataria la informacion segun definicion del usuario. Espero haberme hecho entender y gracias nuevamente por la respuesta
__________________
Un Caballero Jura Lealtad. Usa su espada para suprimir la Injusticia No Conoce el Odio y Tampoco el AMOR...
  #4 (permalink)  
Antiguo 07/02/2008, 11:37
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: Manipular XML con handler externo...

Es totalmente posible hacer lo que pides, trata de hacerlo y veras que el onreadystatechange dispara tu función que hayas definido anteriormente.

Aunque en lo particular te recomendaría que hicieras algo asi:
Código:
ajax.onreadystatechange = function() {
     if(ajax.readyState==4){
          if(ajax.status==200){
             var doc=ajax.response.XML;
                 mi_funcion_handler( doc );
          }
     }  
}
Así tu función solo recibe un parámetro que es el XML listo para ser procesado.

Saludos.
  #5 (permalink)  
Antiguo 07/02/2008, 12:56
Avatar de Bellenger  
Fecha de Ingreso: noviembre-2004
Ubicación: En un lugar del Mundo...
Mensajes: 599
Antigüedad: 19 años, 5 meses
Puntos: 4
Re: Manipular XML con handler externo...

Gracias, lo acabo de hacer despues de xxxxx, intentos, ahora una consulta mas el detalle es que no es una sola funcion, veras el codigo :
Código:
ajax.onreadystatechange = function() {
     if(ajax.readyState==4){
          if(ajax.status==200){
             var doc=ajax.response.XML;
                 mi_funcion_handler( doc );
          }
     }  
}
pertenece a una funcion que generica que se encarga de realizar las peticiones, ahora, segun la peticion del usuario esta debera tratar distintos xml, cada xml tiene su handler que se encargara de manipularlo, la pregunta es como le paso este handler como parametro para que en la funcion de proceso, sea dispare el handler especifico para el xml solicitado.
Gracias por la respuesta.
Hace time, que no venia por los foros jaja tendre que venir mas seguido ahora que estoy de vagaciones...
__________________
Un Caballero Jura Lealtad. Usa su espada para suprimir la Injusticia No Conoce el Odio y Tampoco el AMOR...
  #6 (permalink)  
Antiguo 07/02/2008, 16:12
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: Manipular XML con handler externo...

Pasale el parametro a tu funcion por decir, si se llama hazPeticionAJAX y dentro de ahi se llama, pasale el callback:
Código:
hazPeticionAJAX( '/path/archivo.xml', procesaXMLA );
function procesaXMLA( xml ) {
      // codigo para procesar
}

// luego en la firma de tu funcion de ajax pasas el callback:
function hazPeticionAJAX( url, cb ) {
       // init
       ajax.onreadystatechange = function() {
     if(ajax.readyState==4){
          if(ajax.status==200){
             var doc=ajax.response.XML;
                 cb( doc );
          }
     }  
}
}
Saludos.
  #7 (permalink)  
Antiguo 07/02/2008, 19:57
Avatar de Bellenger  
Fecha de Ingreso: noviembre-2004
Ubicación: En un lugar del Mundo...
Mensajes: 599
Antigüedad: 19 años, 5 meses
Puntos: 4
Re: Manipular XML con handler externo...

Funciono de a pelos jaja, probando probando funciono todo, Se agradece a todos
__________________
Un Caballero Jura Lealtad. Usa su espada para suprimir la Injusticia No Conoce el Odio y Tampoco el AMOR...
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:30.