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

problema con ajax

Estas en el tema de problema con ajax en el foro de Frameworks JS en Foros del Web. hola a todos tengo unos select anidados con ajax y php, fucionan de forma espectacular, pero cuando los pongo en la aplicacion no funcionan, especificamente ...
  #1 (permalink)  
Antiguo 05/01/2007, 13:39
Avatar de maralbust  
Fecha de Ingreso: febrero-2004
Ubicación: Santiago
Mensajes: 578
Antigüedad: 20 años, 2 meses
Puntos: 0
problema con ajax

hola a todos tengo unos select anidados con ajax y php, fucionan de forma espectacular, pero cuando los pongo en la aplicacion no funcionan, especificamente luego de enviar un formulario. le dejo el codigo para que lo vean y vean que puede ser

Código:
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; 
}
function cargaContenido(selectACargar){
	var selectAnterior=selectACargar-1;
	var valor=document.getElementById("select_"+selectAnterior).options[document.getElementById("select_"+selectAnterior).selectedIndex].value;
	var elemento;
	if(valor!=0)	{
		ajax=nuevoAjax();
		ajax.open("GET", "select_.php?seleccionado="+valor+"&select="+selectACargar, true);
		ajax.onreadystatechange=function(){ 
			if (ajax.readyState==1){
				elemento=document.getElementById("select_"+selectACargar);
				elemento.length=0;
				var opcionCargando=document.createElement("option"); opcionCargando.value=0; opcionCargando.innerHTML="Cargando...";
				elemento.appendChild(opcionCargando); elemento.disabled=true;	
			}
			if (ajax.readyState==4){
				document.getElementById("fila_"+selectACargar).innerHTML=ajax.responseText;
			} 
		}
		ajax.send(null);
	}
	
	var x=1, y=null;
	while(x<=2){
		valor=document.getElementById("select_"+x).options[document.getElementById("select_"+x).selectedIndex].value;
		if(valor==0){
			while(x<=2){
				y=x+1;
				elemento=document.getElementById("select_"+y);
				elemento.length=0;
				var opcionSelecciona=document.createElement("option"); opcionSelecciona.value=0; opcionSelecciona.innerHTML="Selecciona opci&oacute;n...";
				elemento.appendChild(opcionSelecciona); elemento.disabled=true;
				x++;
			}
		}
		x++;
	}
	
}
para mejor entendimiento, tengo una pagina llamada home.php solo carga unos tabs, las otras paginas las carga como cuerpo con ajax, la primeroa pagina es un form esta se guarda en una pagina llamada save.php y vuelvo al form con href de javascript. la sgte pagina tiene lo form anidados, pero una vez que se envia el form dejan de funcionar, que puede ser????
__________________
..:: NADA SE PIERDE SOLO SE TRANSFORMA ::..
  #2 (permalink)  
Antiguo 08/01/2007, 08:45
Avatar de MaBoRaK  
Fecha de Ingreso: abril-2003
Ubicación: La Paz - Bolivia
Mensajes: 2.003
Antigüedad: 21 años
Puntos: 35
Re: problema con ajax

loading..........



- QUE NO FUNCIONA?
- TE SALE ERROR JAVASCRIPT?

adivinando podria decirte que tu error se debe a que interpretas

Código PHP:
var x=1y=null;
    while(
x<=2){
        
valor=document.getElementById("select_"+x).options[document.getElementById("select_"+x).selectedIndex].value;
        if(
valor==0){
            while(
x<=2){
                
y=x+1;
                
elemento=document.getElementById("select_"+y);
                
elemento.length=0;
                var 
opcionSelecciona=document.createElement("option"); opcionSelecciona.value=0opcionSelecciona.innerHTML="Selecciona opci&oacute;n...";
                
elemento.appendChild(opcionSelecciona); elemento.disabled=true;
                
x++;
            }
        }
        
x++;
    } 
antes de que el xmlhttprequest termine su trabajo, si te ha funcionado en tu localhost fue porque el proceso se hizo RAPIDO

Recuerda que haces ajax de forma asyncrona, que quiere decir esto.... que cuando llamas a ajax=nuevoAjax() et etc, javascript no espera a que termine esa ejecucion y luego pase a tu siguiente codigo sino que la inicia como sub-proceso y continua el interprete javascript.

Cualquier codigo que deba interpretarse despues de tu llamado ajax, debe estar siempre dentro de ajax.readyState==4 sino... "pasará de largo".

Bueno si ese no es tu problema, pues nose :p


connection closed.
__________________

Maborak Technologies
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 18:05.