Ver Mensaje Individual
  #4 (permalink)  
Antiguo 23/07/2005, 15:06
Avatar de derkenuke
derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 21 años, 4 meses
Puntos: 45
Hombre si, obviamente mi script es unicamente experimental; una prueba de cómo ordenar un select.

Ahora debes unirlos no "a lo bestia", si no utilizando la cabeza.
Yo crearia una funcion de ordenacion, y cada vez que sea pulsado el boton de mover, que se ordene el select destino (receptor). El codigo completo de la aplicacion seria este:

Código PHP:

<script type="text/javascript"

function 
ordenarSelect(elSelect) {
    
items=document.getElementById(elSelect).options;        // los originales 
    
opciones=new Array();                                    // sera un doble array: con el texto, y con el valor 
    //ordenaremos 'opciones', despues sobrescribiremos todas las opciones originales con 'opciones' que ya estaran ordenadas 
    //rellenamos 'opciones' 
    
for(a=0;a<items.length;a++) 
        
opciones[a]=new Array( items[a].textitems[a].value); 
    
opciones.sort();    // ordenamos 'opciones'. Se ordenara alfabeticamente opciones[0], y los cambios seran efectivos tambien para opciones[1] 
    
for(a=0;a<items.length;a++) {        //sobrescribimos las opciones originales a las ordenadas 
        
items[a].text=opciones[a][0]; 
        
items[a].value=opciones[a][1]; 
    }
}

function 
volcarSelects(emisorreceptor){ 
     
    
// Accedemos a los 2 selects 
    
emisor document.getElementById(emisor); 
    
receptor document.getElementById(receptor); 
     
    
// Obtenemos algunos datos necesarios 
    
posicion receptor.options.length
    
selecionado emisor.selectedIndex
     
    if(
selecionado != -1) { 

        
volcado emisor.options[selecionado]; 
         
        
// Volcamos la opcion al select receptor y lo eliminamos del emisor 
        
receptor.options[posicion] = new Option(volcado.textvolcado.value); 
        
emisor.options[selecionado] = null

    } 
    
    
ordenarSelect(receptor.id);


</script> 



<select id="primero" style="width: 200px; height: 100px;" name="primero" multiple="multiple">
<option value="1">Noticias</option>
<option value="2">Inmuebles</option>
<option value="3">Herramientas</option>
<option value="4">Correos</option>
<option value="5">Usuarios</option>
<option value="6">Configuración</option>
</select>

<!-- Fijaros que a la funcion le paso el ID del select que envia y el segundo parametro es el ID que recibe -->
<input type="button" value="&rarr;" onclick="volcarSelects('primero', 'segundo');" />

<!-- En este caso quiero poder "quitar" opciones, por lo que invierto el orden de los parametros pasados a la función -->
<input type="button" value="&larr;" onclick="volcarSelects('segundo', 'primero');" />

<select style="width: 200px; height: 100px;" id="segundo" name="segundo" multiple="multiple">
</select> 

Creo que es lo que buscas, si no siempre se puede retocar
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.