Ver Mensaje Individual
  #2 (permalink)  
Antiguo 13/11/2007, 07:11
Avatar de derkenuke
derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 20 años, 6 meses
Puntos: 45
Re: Ordenar Options de Select

Hola sanmi69:

¿Lo has intentado? ¿Con qué código base contamos? Acostumbrate a colocar un código sobre el que todos podamos trabajar por igual.

Te dejo aquí un boceto, la función abajo() te la puedes imaginar:
Código PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
>
<
html xmlns="http://www.w3.org/1999/xhtml" xml:lang="es" lang="es">
<
head>
<
meta http-equiv="Content-type" content="text/html;charset=iso-8859-1" />
<
meta name="Author" content="derkeNuke" />
<
title>Página nueva</title>
<
style type="text/css">

</
style>
</
head>

<
body>



<
select multiple="multiple" size="10" id="elSelect">
    <
option value="0">cero</option>
    <
option value="1">uno</option>
    <
option value="2">dos</option>
    <
option value="3">tres</option>
    <
option value="4">cuatro</option>
    <
option value="5">cinco</option>
    <
option value="6">seis</option>
    <
option value="7">siete</option>
    <
option value="8">ocho</option>
    <
option value="9">nueve</option>
</
select>
<
button type="button" onclick="arriba()">Arriba</button>
<
button type="button" onclick="abajo()">Abajo</button>




<
script type="text/javascript">
<!--

// document.getElementById abreviado
function $(x) { return document.getElementById(x); }

function 
arriba() {
    var 
elSel = $("elSelect");
    var 
opciones elSel.options;
    var 
opcionesSeleccionadas = [];
    for(var 
i=0l=opciones.lengthi<li++) {
        if( 
opciones[i].selected )
            
opcionesSeleccionadas.pushopciones[i] );
    }
    
// ahora tenemos que sustituir opcionA por opcionB (burdamente porque el IE no deja directamente)
    
function cambiarPosicionOption(optionAoptionB) {
        
elSel.optionsoptionA.index ] = new Option(optionB.textoptionB.value);
        
elSel.optionsoptionB.index ] = new Option(optionA.textoptionA.value);
    }
    for(var 
i=0l=opcionesSeleccionadas.lengthi<li++) {
        
// sustituimos cada opcion por la anterior
        
var hayAnterior opcionesSeleccionadas[i].index 0;
        if( 
hayAnterior ) {
            var 
elAnterior elSel.optionsopcionesSeleccionadas[i].index ];
            
cambiarPosicionOptionopcionesSeleccionadas[i], elAnterior);
        }
    }
}

function 
abajo() {
    
}

// -->
</script>

</body>
</html> 

Un saludo.
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.