Ver Mensaje Individual
  #1 (permalink)  
Antiguo 12/03/2008, 15:35
Avatar de Javier01
Javier01
 
Fecha de Ingreso: febrero-2008
Ubicación: Montevideo
Mensajes: 261
Antigüedad: 16 años, 2 meses
Puntos: 31
Pregunta Ajax dentro de un For

Buenas a todos. Tengo una pequeña pregunta que capas que puedan contestarme.

Yo tengo una pagina que crea text dinámicamente con un botón y algo de javascript; luego con un botón "verificar" recorro esos text y los comparo con unos campos de la BD, este botón que llama una función en javascript tiene un FOR para recorrer y dentro de este tengo que hacer la consulta con ajax, La cual va a una pagina ASP y me devuelve si es correcto lo del campo o no.
Este resultado lo imprimo en pantalla y listo.
El problema es que cuando recorro el FOR me genera una sola respuesta, y creo que es porque se recorre todo el For antes de obtener todas las respuestas. No se si se entiende; la pregunta es si puede ser que el for no espere el resultado que devuelve ajax o la respuesta es muy lenta? o tal vez sea un error de mi código nada mas.

Acá les dejo algo simplificado (y de seguro con varios errores) de lo que es mas o menos lo que yo quiero hacer:

Código:
<script language="javascript">
var http = getHTTPObject();

function getHTTPObject() {
var xmlhttp = false;
/*@cc_on
@if (@_jscript_version >= 5)
     try {
	xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
     } catch (e) {
	try {
		xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
	} catch (E) { xmlhttp = false; }
     }
@else
     xmlhttp = false;
@end @*/
if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
     try {
	xmlhttp = new XMLHttpRequest();
     } catch (e) { xmlhttp = false; }
}
return xmlhttp;
}


function verificar()
{
var url;
var i;
var j =0;
for(i=0; i<=4; i++)
{
       url = "consultaCuadro.asp?valorquepaso=<%=valorquepaso%>	
       http.open("GET", url, true);
       lista.idCuadro.value=j;
       http.onreadystatechange = HttpResponse;
       http.send(null);
       j = j + 1;	
}

}
function HttpResponse() {
if (http.readyState == 4) {
      if (http.status == 200) {
            if (http.responseText != "")
	{
	      alert("mi respuesta para el text numero:" + j);	
	}
      }
}
}