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

Mi array "olvida" su valor.

Estas en el tema de Mi array "olvida" su valor. en el foro de Frameworks JS en Foros del Web. Hola que tal: Mi problema es básicamente que tengo una función en donde mediante un ciclo asigno valores a un array global luego lo llamo ...
  #1 (permalink)  
Antiguo 27/09/2007, 10:39
 
Fecha de Ingreso: septiembre-2007
Mensajes: 2
Antigüedad: 16 años, 7 meses
Puntos: 0
Mi array "olvida" su valor.

Hola que tal:

Mi problema es básicamente que tengo una función en donde mediante un ciclo asigno valores a un array global luego lo llamo desde otra función y deberia llenar una caja de selección, pero parece tener problemas de sincronización o algo así, porque si antes de llenar la caja hago un alert de lo que sea, si me pasa el valor del array a mi caja, y si no hago nada antes, el array parece que va atrasado porque en la siguiente llamada a la función (en este caso un onChange) toma el valor anterior y así.

Se supone que el flujo es así:

1.- Se crea un objeto (caja de seleccion), se le meten valores y se le asigna el onChange.

2.-Cuando el onchange se dispara, toma la seleccion de la caja y lo envia con el httprequest y todo eso para traer una lista de mi base de datos. Esto funciona bien, porque en mi desesperación he mostrado con alerts en contenido del array que estoy llenando con esa lista.

3.-Ese mismo onChange llama a otra función que debería tomar este arreglo global y meterlo en una caja de selección. Aqui es cuando ocurre el problema, porque si no hago un alert antes, no hace nada y es hasta el siguiente evento onChange es cuando me llena la caja....lo que se me hace extraño es que si hago un alert si lo hace en el momento que quiero. LEs pongo el codigo que puede ser util.


//esta funcion es la que se dispara con el OnChange. valorCaja se llena con arrayPortador
function llenar_caja_de_row(valorCaja,cajaDestino,cajaOrige n)
{

//primero llamo a la funcion que crea el array que voy a usar
obtener_direcciones_mini(document.getElementById(" piezBox").value , cajaOrigen.value);
//y luego uso el array global para llenar la caja.. es lo que falla
popular_caja(cajaDestino,valorCaja);
//aqui reinicio el array para que no se me encimen los nuevos valores
arrayPortador.length=0;
}


//Esta es la parte del HTTPREQUEST y que pide la query ...
function obtener_direcciones_mini(pieza,alm)
{
if ((alm.length==0)||(pieza.length==0))
{
return
}
xmlHttp=GetXmlHttpObject();
if (xmlHttp==null)
{
alert ("Browser does not support HTTP Request")
return
}
var url="obtener_direcciones_libres.php";
url=url+"?q="+pieza;
url=url+"&r="+alm;
url=url+"&sid="+Math.random();
xmlHttp.onreadystatechange=mandar_array ; //aqui invoco la parte que llena el array
xmlHttp.open("GET",url,true);
xmlHttp.send(null);
}

//Aqui es donde le doy valores a mi array global. Sirve porque le he metido alerts
function mandar_array()
{
if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
{
var response = xmlHttp.responseXML.documentElement;
var contador=0;
var objetoEnTurno;
while (response.getElementsByTagName('direccion').item(c ontador)!=null)
{
objetoEnTurno=response.getElementsByTagName('direc cion').item(contador);
arrayPortador[contador]=objetoEnTurno.firstChild.data;

contador++;
}

}
}

Como lo ven, alguna sugerencia?? Se que esta un bastante chafón, pero la verdad no soy programador y estoy aprendiendo a usar js!
  #2 (permalink)  
Antiguo 01/10/2007, 07:49
 
Fecha de Ingreso: septiembre-2007
Mensajes: 2
Antigüedad: 16 años, 7 meses
Puntos: 0
Re: Mi array "olvida" su valor.

alguien? alguna idea?
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 05:57.