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

Problema al ejecuar la misma función varias veces.

Estas en el tema de Problema al ejecuar la misma función varias veces. en el foro de Frameworks JS en Foros del Web. Buenos días, el problema es el siguiente, tengo una pantalla donde tengo 24 capas, y quiero hacer aparece la respuesta de cada una de las ...
  #1 (permalink)  
Antiguo 10/06/2010, 02:02
Avatar de sck1983  
Fecha de Ingreso: noviembre-2005
Ubicación: Sevilla
Mensajes: 110
Antigüedad: 18 años, 5 meses
Puntos: 2
Problema al ejecuar la misma función varias veces.

Buenos días, el problema es el siguiente, tengo una pantalla donde tengo 24 capas, y quiero hacer aparece la respuesta de cada una de las 24 correspondientes consultas dentro de sus respectivas cajas.

La idea es mostrar un diario en 2 columnas, cada columna tiene 12 capas (por horas del dia, desde las 8 de la mañana a las 20 de la tarde).

Mi código es el siguiente:

Código:
var READY_STATE_UNINITIALIZED=0;
var READY_STATE_LOADING=1;
var READY_STATE_LOADED=2;
var READY_STATE_INTERACTIVE=3;
var READY_STATE_COMPLETE=4;

var peticion_http = null;

function listado_actividad(dia,mes,ano,col,x,id_empleado) {

	caja="ch_agenda"+col+"_"+x;

	actividad();

	function actividad() {
		peticion_http = inicializa_xhr();
		peticion_http.onreadystatechange = muestraContenido_actividad;
		peticion_http.open("GET", "listado_actividad.php?dia="+dia+"&mes="+mes+"&ano="+ano+"&x="+x+"&id_empleado="+id_empleado, true);
		
		peticion_http.send(null);
				
	}
		
	function muestraContenido_actividad(){
		if(peticion_http.readyState == 1){
			document.getElementById(caja).innerHTML = "<img src=\"../images/cargando.gif\" />";
		}else{
			document.getElementById(caja).innerHTML = peticion_http.responseText;		
		}
	}	
	
}
Código:
	for(col=1; col<3; col ++){
		document.write("<td valign='top'>");
		for(x=8; x<21; x++){

			listado_actividad(dia,mes,ano,col,x,id_empleado);
			
		}
		
	}
Lo pasa es que solo imprime el resultado de la última consulta.

Pero si pongo un alert(); y parece que hace como un pause en la función, si va imprimiendo el resultado de cada consulta spl.

Gracias.
  #2 (permalink)  
Antiguo 11/06/2010, 14:29
 
Fecha de Ingreso: octubre-2009
Mensajes: 97
Antigüedad: 14 años, 6 meses
Puntos: 4
Respuesta: Problema al ejecuar la misma función varias veces.

Lo que pasa es que cuando llamas a la función no guardas el contenido anterior.
Modifica la función muestraContenido_actividad así:

Código Javascript:
Ver original
  1. function muestraContenido_actividad(){
  2.         if(peticion_http.readyState == 1){
  3.             document.getElementById(caja).innerHTML = "<img src=\"../images/cargando.gif\" />";
  4.         }else{
  5.             document.getElementById(caja).innerHTML = contenido_anterior + peticion_http.responseText;     
  6.                         contenido_anterior = document.getElementById(caja).innerHTML;
  7.         }
  8.     }
Y coloca ésta línea al principio del código:
var contenido_anterior="";
(No la coloques adentro de una función)

Etiquetas: ajax
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 16:54.