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

problemas en una simple carga...

Estas en el tema de problemas en una simple carga... en el foro de Frameworks JS en Foros del Web. Buenas a todos, Esta es mi primera experiencia en Ajax básicamente, y veo que al final, hagas lo que hagas siempre te acabas cagando en ...
  #1 (permalink)  
Antiguo 29/02/2008, 04:37
 
Fecha de Ingreso: abril-2006
Mensajes: 11
Antigüedad: 18 años, 7 meses
Puntos: 0
problemas en una simple carga...

Buenas a todos,

Esta es mi primera experiencia en Ajax básicamente, y veo que al final, hagas lo que hagas siempre te acabas cagando en el explorer..., en fin...

Tengo estas funciones:

Código:
function xmlhttp(){
  var xmlhttp;
  try{xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");}
	catch(e){
		try{xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");}
		catch(e){
			try{xmlhttp = new XMLHttpRequest();}
			catch(e){
				xmlhttp = false;
			}
		}
	}
	if (!xmlhttp)  return null;
	else return xmlhttp;
}

function carregaCombo2 (url, comboAnterior, element_id) {
    
    var element =  document.getElementById(element_id);
    var valorDependent = document.getElementById(comboAnterior);
    var x = valorDependent.value;
    var fragment_url = url+'?id='+x;
	
	var ajax = xmlhttp();
	ajax.onreadystatechange = function() { 
    	
    	if (ajax.readyState == 4) {
			element.innerHTML = ajax.responseText;
        } 
    }
    
	ajax.open("GET", fragment_url); 
	ajax.send(null);
	carregaCombo3('funcions/combo3.php', 'provincia_ruta', 'comarca');
}

function carregaCombo3 (url, comboAnterior, element_id) {
    
    var element =  document.getElementById(element_id);
    var valorDependent = document.getElementById(comboAnterior);
    var x = valorDependent.value;
    //alert(x);
    var valorDependent = document.getElementById(comboAnterior);
    var x = valorDependent.value;
    //alert(x);
    var fragment_url = url+'?id='+x;
	
	var ajax = xmlhttp();
	ajax.onreadystatechange = function() { 
    	
    	if (ajax.readyState == 4) {
			element.innerHTML = ajax.responseText;
        } 
    }
    
	ajax.open("GET", fragment_url); 
	ajax.send(null);
	
	carregaCombo4('funcions/combo4.php', 'provincia_ruta', 'comarca', 'poblacio');
}
Pues bien, son unos combos dependientes que funcionana a las mil maravillas con Firefox, pero en explorer no...., lo curioso es que en la función carregaCombo3(), hay dos alerts comentados, si los descomento, en explorer funciona!..., pero no los quiero poner, claro...

En fin, he intentado poner un delay en el javascript, etc..., pero veo que en explorer coge las variables antes de que se cargue en la página...

Si alguien puede echarme un cable se lo agradeceré.

Saludos!!
  #2 (permalink)  
Antiguo 04/03/2008, 15:46
Avatar de MaBoRaK  
Fecha de Ingreso: abril-2003
Ubicación: La Paz - Bolivia
Mensajes: 2.003
Antigüedad: 21 años, 6 meses
Puntos: 35
Re: problemas en una simple carga...

loading..............

Debes poner la carga de los nuevos combos cuando termine de cargar el ANTERIOR COMBO (supongo)

Código:
ajax.onreadystatechange = function() { 
    	
    	if (ajax.readyState == 4) {
			element.innerHTML = ajax.responseText;
	carregaCombo3('funcions/combo3.php', 'provincia_ruta', 'comarca');
        } 
    }
    
	ajax.open("GET", fragment_url); 
	ajax.send(null);
connection closed.
__________________

Maborak Technologies
  #3 (permalink)  
Antiguo 04/03/2008, 16:43
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 7 meses
Puntos: 1284
Re: problemas en una simple carga...

Hola:

Sobre cargas secuenciales, en otro mensaje: Un script para darle un preload al index hay un código reutilizable que creo que puede servir.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
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 04:04.