Foros del Web » Programando para Internet » Javascript »

Modificar listas, selects al seleccionar opcion

Estas en el tema de Modificar listas, selects al seleccionar opcion en el foro de Javascript en Foros del Web. Buenos días a todos, necesito vuestra ayuda, estoy trabajando en wordpress, aunque mi duda es de Javascript. Tengo una página donde tengo 2 bucles, que ...
  #1 (permalink)  
Antiguo 28/05/2012, 01:57
Avatar de m1991lp  
Fecha de Ingreso: mayo-2009
Ubicación: BCN
Mensajes: 16
Antigüedad: 14 años, 11 meses
Puntos: 4
Modificar listas, selects al seleccionar opcion

Buenos días a todos, necesito vuestra ayuda, estoy trabajando en wordpress, aunque mi duda es de Javascript.

Tengo una página donde tengo 2 bucles, que construyen 10 selects con diferentes opciones (equipos de futbol). Lo que quiero hacer es que cuando en el 1r select se seleccione un equipo, este no esté disponible en todos los demás selects...

De manera que vayan quedando cada vez menos equipos, cuando los vas seleccionando..

No se si me he explicado muy bien, pero pondré un pequeño ejemplo.

Si en el primer select, selecciono el Barcelona, este NO deberñia aparecer en las demás listas. Para llamar la función javascript, uso el Onclick y le paso el equipo (al menos en eso habia pensado).

Espero que me podais ayudar porque voy bastante perdido xD Gracias!.

Mis selects son los siguientes:

Código PHP:
Ver original
  1. <?php
  2.         echo "<form id='acMarc' name='acMarc'><table id='tablaActMarc'><th>";
  3.             for($i=0;$i<10;$i++){
  4.                 echo "<select class='selects' id='selActMarcL' name='selL'>
  5.                 <option selected='selected'>Seleccione Equipo</option>
  6.                 <option id='Barcelona' value='Barcelona' onclick='javascript:quitarEquipo(1);'>Barcelona</option>
  7.                 <option id='Madrid' value='Madrid' onclick='javascript:quitarEquipo(2);'>Madrid</option>
  8.                 <option id='Valencia' value='Valencia' onclick='javascript:quitarEquipo(3);'>Valencia</option>
  9.                 <option id='Malaga' value='Malaga' onclick='javascript:quitarEquipo(4);'>Malaga</option>
  10.                 <option id='Levante' value='Levante' onclick='javascript:quitarEquipo(5);'>Levante</option>
  11.                 <option id='Atletico' value='Atletico' onclick='javascript:quitarEquipo(6);'>Atletico</option>
  12.                 <option id='Mallorca' value='Mallorca' onclick='javascript:quitarEquipo(7);'>Mallorca</option>
  13.                 <option id='Athletic' value='Athletic' onclick='javascript:quitarEquipo(8);'>Athletic</option>
  14.                 <option id='Osasuna' value='Osasuna' onclick='javascript:quitarEquipo(9);'>Osasuna</option>
  15.                 <option id='Sevilla' value='Sevilla' onclick='javascript:quitarEquipo(10);'>Sevilla</option>
  16.                 <option id='Betis' value='Betis' onclick='javascript:quitarEquipo(11);'>Betis</option>
  17.                 <option id='Getafe' value='Getafe' onclick='javascript:quitarEquipo(12);'>Getafe</option>
  18.                 <option id='Espanyol' value='Espanyol' onclick='javascript:quitarEquipo(13);'>Espanyol</option>
  19.                 <option id='RealSociedad' value='RealSociedad' onclick='javascript:quitarEquipo(14);'>Real Sociedad</option>
  20.                 <option id='Granada' value='Granada' onclick='javascript:quitarEquipo(15);'>Granada</option>
  21.                 <option id='Villareal' value='Villareal' onclick='javascript:quitarEquipo(16);'>Villareal</option>
  22.                 <option id='Rayo' value='Rayo' onclick='javascript:quitarEquipo(17);'>Rayo</option>
  23.                 <option id='Zaragoza' value='Zaragoza' onclick='javascript:quitarEquipo(18);'>Zaragoza</option>
  24.                 <option id='Sporting' value='Sporting' onclick='javascript:quitarEquipo(19);'>Sporting</option>
  25.                 <option id='Racing' value='Racing' onclick='javascript:quitarEquipo(20);'>Racing</option>
  26.                 </select><br>";
  27.             }
  28.             echo "</th><th>";
  29.             for($b=0;$b<10;$b++){
  30.                 echo "<center><input type='text' id='Gol$b' class='gol'>-<input type='text' id='Gol$b+1' class='gol'><br></center>";
  31.             }
  32.             echo "</th><th>";
  33.             for($b=0;$b<10;$b++){
  34.                 echo "<select class='selects' id='selActMarcR' name='selR$i'>
  35.                 <option selected='selected'>Seleccione Equipo</option>
  36.                 <option id='Barcelona' value='Barcelona' onclick='javascript:quitarEquipo(1);'>Barcelona</option>
  37.                 <option id='Madrid' value='Madrid' onclick='javascript:quitarEquipo(2);'>Madrid</option>
  38.                 <option id='Valencia' value='Valencia' onclick='javascript:quitarEquipo(3);'>Valencia</option>
  39.                 <option id='Malaga' value='Malaga' onclick='javascript:quitarEquipo(4);'>Malaga</option>
  40.                 <option id='Levante' value='Levante' onclick='javascript:quitarEquipo(5);'>Levante</option>
  41.                 <option id='Atletico' value='Atletico' onclick='javascript:quitarEquipo(6);'>Atletico</option>
  42.                 <option id='Mallorca' value='Mallorca' onclick='javascript:quitarEquipo(7);'>Mallorca</option>
  43.                 <option id='Athletic' value='Athletic' onclick='javascript:quitarEquipo(8);'>Athletic</option>
  44.                 <option id='Osasuna' value='Osasuna' onclick='javascript:quitarEquipo(9);'>Osasuna</option>
  45.                 <option id='Sevilla' value='Sevilla' onclick='javascript:quitarEquipo(10);'>Sevilla</option>
  46.                 <option id='Betis' value='Betis' onclick='javascript:quitarEquipo(11);'>Betis</option>
  47.                 <option id='Getafe' value='Getafe' onclick='javascript:quitarEquipo(12);'>Getafe</option>
  48.                 <option id='Espanyol' value='Espanyol' onclick='javascript:quitarEquipo(13);'>Espanyol</option>
  49.                 <option id='RealSociedad' value='RealSociedad' onclick='javascript:quitarEquipo(14);'>Real Sociedad</option>
  50.                 <option id='Granada' value='Granada' onclick='javascript:quitarEquipo(15);'>Granada</option>
  51.                 <option id='Villareal' value='Villareal' onclick='javascript:quitarEquipo(16);'>Villareal</option>
  52.                 <option id='Rayo' value='Rayo' onclick='javascript:quitarEquipo(17);'>Rayo</option>
  53.                 <option id='Zaragoza' value='Zaragoza' onclick='javascript:quitarEquipo(18);'>Zaragoza</option>
  54.                 <option id='Sporting' value='Sporting' onclick='javascript:quitarEquipo(19);'>Sporting</option>
  55.                 <option id='Racing' value='Racing' onclick='javascript:quitarEquipo(20);'>Racing</option>
  56.                 </select><br>";
  57.             }
  58.             echo "</th></table><center><input type='button' id='ActMarcadores;' value='Actualizar Marcadores' class='submitAnunciarse'></center></form>";
  59.          ?>

y de Javascript tengo muy poco, por no decir casi nada.... Lo único que he estado haciendo pruebas y de la siguiente manera, me borra de la lista pero sólo de la que selecciono, no las del resto...

Código Javascript:
Ver original
  1. function quitarEquipo(equipo){
  2.     alert(equipo);
  3.     for(var c=0; c<10;c++){
  4.         document.getElementById('selActMarcL').remove(equipo);
  5.     }
  6.     document.getElementById('selActMarcR').remove(equipo);
  7. }

Última edición por m1991lp; 28/05/2012 a las 02:10 Razón: Añadir Información
  #2 (permalink)  
Antiguo 28/05/2012, 04:21
Avatar de marlanga  
Fecha de Ingreso: enero-2011
Ubicación: Murcia
Mensajes: 1.024
Antigüedad: 13 años, 3 meses
Puntos: 206
Respuesta: Modificar listas, selects al seleccionar opcion

Tu código tendrá un problema grave: Cuando deselecciones un option, los otros selects no se enterarán y no lo añadirán. Asi que hay que guardar los option marcados.

Código HTML:
Ver original
  1.     <head>
  2.     <script>
Código Javascript:
Ver original
  1. var equipos=[
  2.         ["Barcelona","Barcelona"],
  3.         ["Madrid","Real Madrid"],
  4.         ["Valencia","Valencia"],
  5.         ["Malaga","Malaga"],
  6.         ["Levante","Levante"],
  7.         ["Atletico","Atletico de Madrid"],
  8.         ["Mallorca","Mallorca"],
  9.         ["Athletic","Athletic de Bilbao"],
  10.         ["Osasuna","Osasuna"],
  11.         ["Sevilla","Sevilla"],
  12.         ["Betis","Betis"],
  13.         ["Getafe","Getafe"],
  14.         ["Espanyol","Espanyol"],
  15.         ["RealSociedad","Real Sociedad"],
  16.         ["Granada","Granada"],
  17.         ["Rayo","Rayo Vallecano"],
  18.         ["Zaragoza","Zaragoza"],
  19.         ["Sporting","Sporting"],
  20.         ["Racing","Racing de Santander"]
  21.     ];
  22.     var elegidos=[];
  23.     Array.prototype.contiene= function(obj,pos) {
  24.         var i = this.length;
  25.         while (i--)
  26.         {
  27.             if (this[i][0] == obj && this[i][1]!=pos)
  28.             {
  29.                 return true;
  30.             }
  31.         }
  32.         return false;
  33.     }
  34.    
  35.     function crearOptions(marcado,pos){
  36.         var cadena="<option value='se'>Seleccione Equipo</option>";
  37.         var n = equipos.length;
  38.         for (var i=0;i<n;i++)
  39.         {
  40.             if (elegidos.contiene(equipos[i][0],pos)) continue;
  41.             cadena+="<option "+((marcado==equipos[i][0])?"selected='selected'":"")+" class='"+equipos[i][0]+"' value='"+equipos[i][0]+"'>"+equipos[i][1]+"</option>";
  42.         }
  43.         return cadena;
  44.     }
  45.     function llenarElegidos(){
  46.         elegidos=[];
  47.         for (var i=0;i<10;i++)
  48.         {
  49.             select=document.getElementById("equipo"+i);
  50.             if (select.value!="se")
  51.             {
  52.                 elegidos.push([select.value,i]);
  53.             }
  54.         }
  55.     }
  56.     function enlazarChange(){
  57.         for (var i=0;i<10;i++)
  58.         {
  59.             select=document.getElementById("equipo"+i);
  60.             select.onchange=function(){
  61.                 llenarElegidos();
  62.                 llenarSelects();
  63.             };
  64.         }
  65.     }
  66.     function llenarSelects(){
  67.         var cadena;
  68.         for (var i=0;i<10;i++)
  69.         {
  70.             select=document.getElementById("equipo"+i);
  71.            
  72.             cadena=crearOptions(select.value,i);
  73.             select.innerHTML=cadena;
  74.         }
  75.     }
  76.  
  77.     window.onload=function(){
  78.         elegidos=[];
  79.         enlazarChange();
  80.         llenarSelects();
  81.     }
Código HTML:
Ver original
  1.     </head>
  2.     <body>
  3.         <select id="equipo0">
  4.         </select><br/>
  5.         <select id="equipo1">
  6.         </select><br/>
  7.         <select id="equipo2">
  8.         </select><br/>
  9.         <select id="equipo3">
  10.         </select><br/>
  11.         <select id="equipo4">
  12.         </select><br/>
  13.         <select id="equipo5">
  14.         </select><br/>
  15.         <select id="equipo6">
  16.         </select><br/>
  17.         <select id="equipo7">
  18.         </select><br/>
  19.         <select id="equipo8">
  20.         </select><br/>
  21.         <select id="equipo9">
  22.         </select><br/>
  23.     </body>
  24. </html>

Para verlo en vivo:
http://jsfiddle.net/VUjqb/
  #3 (permalink)  
Antiguo 28/05/2012, 12:20
Avatar de m1991lp  
Fecha de Ingreso: mayo-2009
Ubicación: BCN
Mensajes: 16
Antigüedad: 14 años, 11 meses
Puntos: 4
Respuesta: Modificar listas, selects al seleccionar opcion

Muchíssimas gracias compañeroo!! voy a probar :)

Es justo lo que quería, gracias de nuevo !! :D

Última edición por m1991lp; 28/05/2012 a las 12:23 Razón: ya lo eh probado :P

Etiquetas: listas, modificar, opcion, remover, selects
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 13:10.