Retroceder   Foros del Web > Programación para sitios web > AJAX

Respuesta
 
Herramientas Desplegado
Antiguo 07-feb-2008, 08:39   #1 (permalink)
Bellenger ha deshabilitado el karma
 
Avatar de Bellenger
 
Fecha de Ingreso: noviembre-2004
Ubicación: Lima Peru
Mensajes: 550
Enviar un mensaje por MSN a Bellenger Enviar un mensaje por Skype™ a Bellenger
Triste 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...
Bellenger está desconectado   Responder Citando
Antiguo 07-feb-2008, 09:38   #2 (permalink)
$this->role('moderador');
GatorV es realmente agradableGatorV es realmente agradableGatorV es realmente agradableGatorV es realmente agradableGatorV es realmente agradableGatorV es realmente agradable
 
Avatar de GatorV
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ags/
Mensajes: 13.865
Re: Manipular XML con handler externo...

A que te refieres con una funcion externa?

Saludos.
__________________
Blog Web
GatorV está desconectado   Responder Citando
Antiguo 07-feb-2008, 10:17   #3 (permalink)
Bellenger ha deshabilitado el karma
 
Avatar de Bellenger
 
Fecha de Ingreso: noviembre-2004
Ubicación: Lima Peru
Mensajes: 550
Enviar un mensaje por MSN a Bellenger Enviar un mensaje por Skype™ a Bellenger
Alegría 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...
Bellenger está desconectado   Responder Citando
Antiguo 07-feb-2008, 10:37   #4 (permalink)
$this->role('moderador');
GatorV es realmente agradableGatorV es realmente agradableGatorV es realmente agradableGatorV es realmente agradableGatorV es realmente agradableGatorV es realmente agradable
 
Avatar de GatorV
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ags/
Mensajes: 13.865
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.
__________________
Blog Web
GatorV está desconectado   Responder Citando
Antiguo 07-feb-2008, 11:56   #5 (permalink)
Bellenger ha deshabilitado el karma
 
Avatar de Bellenger
 
Fecha de Ingreso: noviembre-2004
Ubicación: Lima Peru
Mensajes: 550
Enviar un mensaje por MSN a Bellenger Enviar un mensaje por Skype™ a Bellenger
Alegría 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...
Bellenger está desconectado   Responder Citando
Antiguo 07-feb-2008, 15:12   #6 (permalink)
$this->role('moderador');
GatorV es realmente agradableGatorV es realmente agradableGatorV es realmente agradableGatorV es realmente agradableGatorV es realmente agradableGatorV es realmente agradable
 
Avatar de GatorV
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ags/
Mensajes: 13.865
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.
__________________
Blog Web
GatorV está desconectado   Responder Citando
Antiguo 07-feb-2008, 18:57   #7 (permalink)
Bellenger ha deshabilitado el karma
 
Avatar de Bellenger
 
Fecha de Ingreso: noviembre-2004
Ubicación: Lima Peru
Mensajes: 550
Enviar un mensaje por MSN a Bellenger Enviar un mensaje por Skype™ a Bellenger
Alegría 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...
Bellenger está desconectado   Responder Citando
Respuesta

No hay votos aún.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 06:22.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93