Foros del Web » Programando para Internet » Javascript »

Recorrer registros con javascript

Estas en el tema de Recorrer registros con javascript en el foro de Javascript en Foros del Web. Buenos días. A ver si alguien me puede ayudar... Tengo una tabla html que pinta unos 1500 registros. Con una función java, he hecho un ...
  #1 (permalink)  
Antiguo 09/06/2009, 01:33
 
Fecha de Ingreso: agosto-2006
Mensajes: 45
Antigüedad: 17 años, 8 meses
Puntos: 0
Recorrer registros con javascript

Buenos días.

A ver si alguien me puede ayudar... Tengo una tabla html que pinta unos 1500 registros. Con una función java, he hecho un botón que cuando le dan, marca todos los checkbox de los registros de la tabla... Pero se me queda un poco
colgado. Mi código java es el siguiente... Simplemente recorro la tabla y marco en checkbox. Hay alguna forma de mejorar el rendimiento???

Código PHP:
while ( continuar == )
        {
       
indice++;
           
     
valor document.getElementById('IT_DATOS_CHAR['indice ' ]-NOMBRE');
           if ( 
valor == null){
            
continuar 1;
           }else{
           
      var 
tipo document.getElementById('IT_DATOS_CHAR['indice ' ]-NOMBRE').type;
        <%--      
//si no existe este campo, es porque ya nos hemos acabado la tabla--%>
           
if ( tipo ==  'hidden' || tipo == 'null' )
           {
             
continuar 1;
            }
            else
            {
               
document.getElementById('IT_DATOS_CHAR['indice ' ]-SELECCIONADO').checked 1;
               
document.getElementById('IT_DATOS_CHAR['indice ' ]-SELECCIONADO').value "X";

             }
           }
           } 
  #2 (permalink)  
Antiguo 09/06/2009, 01:38
 
Fecha de Ingreso: junio-2009
Mensajes: 61
Antigüedad: 14 años, 11 meses
Puntos: 0
Respuesta: Recorrer registros con javascript

Hola, no se si ganamos mucho pero se puede mejorar un poco el rendimiento así:


while ( continuar == 0 )
{
indice++;

valor = document.getElementById('IT_DATOS_CHAR['+ indice + ' ]-NOMBRE');
if ( valor == null){
continuar = 1;
}else{

if ( valor.type == 'hidden' || valor.type == 'null' )
{
continuar = 1;
}
else
{
document.getElementById('IT_DATOS_CHAR['+ indice + ' ]-SELECCIONADO').checked = 1;
document.getElementById('IT_DATOS_CHAR['+ indice + ' ]-SELECCIONADO').value = "X";

}
}
}
  #3 (permalink)  
Antiguo 09/06/2009, 01:49
 
Fecha de Ingreso: junio-2009
Ubicación: Valencia
Mensajes: 45
Antigüedad: 14 años, 10 meses
Puntos: 8
Respuesta: Recorrer registros con javascript

Hola javaprendiz,

Se te queda colgado porque has definido un bucle infinito; es decir, nunca se cumple la condición (continuar == 0) y siempre está recorriendo el bucle. Te falta establecer la variable continuar a 0 en el momento que llegues al final de la tabla, de esta manera harás que salga del bucle.

Salu2,
Carlos.
  #4 (permalink)  
Antiguo 09/06/2009, 03:04
 
Fecha de Ingreso: agosto-2006
Mensajes: 45
Antigüedad: 17 años, 8 meses
Puntos: 0
Respuesta: Recorrer registros con javascript

hola ruzdeeaguilaz,

Si que tengo declarada la variable de la condición... Mi problema es que tarda mucho, y queria saber si hay alguna forma de marcar todos los check sin recorrer la tabla registro a registro.

Gracias por tu cambia javatoscript, pero todavía tarda demasiado...
  #5 (permalink)  
Antiguo 09/06/2009, 03:48
 
Fecha de Ingreso: junio-2009
Ubicación: Valencia
Mensajes: 45
Antigüedad: 14 años, 10 meses
Puntos: 8
Respuesta: Recorrer registros con javascript

Cita:
Iniciado por javaprendiz Ver Mensaje
hola ruzdeeaguilaz,

Si que tengo declarada la variable de la condición... Mi problema es que tarda mucho, y queria saber si hay alguna forma de marcar todos los check sin recorrer la tabla registro a registro.

Gracias por tu cambia javatoscript, pero todavía tarda demasiado...
Tienes toda la razón, disculpa por no haberme fijado bien. Realmente es difícil dar una solución con un buen rendimiento teniendo en cuenta el número de registros, pero podrías probar lo siguiente:

Código:
var inputs = document.getElementsByTagName("input");
inputs.each(function(elemento, indice) {
    if (elemento.type == 'checkbox')
    {
        elemento.checked = 1;
        elemento.value = "X";
    }
});
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 15:56.