Foros del Web » Programando para Internet » Javascript »

Items seleccionados, ¿cómo filtrar?

Estas en el tema de Items seleccionados, ¿cómo filtrar? en el foro de Javascript en Foros del Web. Buenas, necesito un código javascript que me escoja tan solo los items que están seleccionados en un listbox y lo que hago ahora es hacer ...
  #1 (permalink)  
Antiguo 06/06/2008, 08:52
Avatar de pempas  
Fecha de Ingreso: diciembre-2003
Ubicación: Barcelona
Mensajes: 985
Antigüedad: 20 años, 4 meses
Puntos: 6
Items seleccionados, ¿cómo filtrar?

Buenas,

necesito un código javascript que me escoja tan solo los items que están seleccionados en un listbox y lo que hago ahora es hacer un "for" para recorrer el listbox mirando los seleccionados pero el problema que tengo es que pueden haber hasta 2000 referencias en ese listbox y tarda demasiado en hacer el bucle.

¿Puedo hacer un bucle y obtener todos los items seleccionados?, ¿hay alguna instrucción para recoger los items seleccionados directamente sin tener que hacer el bucle?

Les enseño el código que utilizo ahora:

Código PHP:
for(j=0;j<document.getElementById('atribfamilias').options.length;j++){ 
  if (
document.getElementById('atribfamilias').options[j].selected==true){
   if (
tempfamilia==''){
    
tempfamilia document.getElementById('atribfamilias').options[j].value;
   } else {
    
tempfamilia tempfamilia ',' document.getElementById('atribfamilias').options[j].value;
   }
  } 
 } 
Lo que hace es ir seleccionando los id's y pasándolos a la variable "tempfamilia" pero tarda muchíssimo cuando hay tantos artículos, ¿alguna solución?

Mil gracias!
  #2 (permalink)  
Antiguo 06/06/2008, 09:07
 
Fecha de Ingreso: abril-2008
Mensajes: 264
Antigüedad: 16 años
Puntos: 2
Respuesta: Items seleccionados, ¿cómo filtrar?

Otra opción es que caada vez que seleccionan un elemento lo agregues a tu array/coleccion/lo que sea, usando el evento onChange...

Ese caso sería más performante, pero te agregaría complejidad desde el lado de la lógica, puesto que cada vez que hagan clic, deberías cerciorarte si estaba ya seleccionado o no. Si lo estaba lo debes eliminar de la colección, caso contrario lo agregas.
__________________
Saludoss
Guille
  #3 (permalink)  
Antiguo 06/06/2008, 09:10
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Respuesta: Items seleccionados, ¿cómo filtrar?

Hola pempas

Que yo sepa, la única forma de saber si un item está seleccionado, es recorrer todos A ver si simplificando un poco el código funciona algo más rápido:

Código:
var tempfamilia = '';
for(j=0;ele = document.getElementById('atribfamilias').options[j];j++) 
  if (ele.selected)
    tempfamilia +=  ((tempfamilia=='') ? '' : ',') + ele.value;
}
Saludos,
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 04:11.