Foros del Web » Programando para Internet » Javascript »

Listas dependientes

Estas en el tema de Listas dependientes en el foro de Javascript en Foros del Web. Hola necesito ayuda para hacer un listado como el que se muestra en la siguiente imagen, la verdad de javascript manejo poco, asi que si ...
  #1 (permalink)  
Antiguo 04/04/2009, 15:32
 
Fecha de Ingreso: abril-2008
Mensajes: 435
Antigüedad: 16 años
Puntos: 10
Listas dependientes

Hola necesito ayuda para hacer un listado como el que se muestra en la siguiente imagen, la verdad de javascript manejo poco, asi que si alguien me puede pasar un tutorial o darme una idea de como se hace se lo agradecere



saludos
  #2 (permalink)  
Antiguo 05/04/2009, 02:38
 
Fecha de Ingreso: marzo-2009
Mensajes: 171
Antigüedad: 15 años, 1 mes
Puntos: 4
Respuesta: Listas dependientes

Yo hago esto, ten en cuenta los id, tienen ques er diferentes, te puse enlaces de ancla pero tu pones la imagen, y colocas todo en una tabla yo te lo coloqué apelotonado
Código:
<script type='text/javascript'>
function selector(s,s2){
	if(selected(s)){
		putSelect(s2,getTextSelect(s),getValueSelect(s));
		delSelect(s);
	}
	
}

function putSelect(id,texto,valor){
    var sel=document.getElementById(id);
	sel[sel.length]= new Option(texto,valor);
}
function getTextSelect(id){
		var sel=document.getElementById(id);
            // Obtenemos que posición del SELECT está seleccionada
        var indiceSeleccionado = sel.selectedIndex;
            // Si hemos seleccionado una opción válida ...
            //if (indiceSeleccionado != 0)           
                // Obtenemos el valor seleccionado
        return sel.options[indiceSeleccionado].text;

}
function getValueSelect(id){
		var sel=document.getElementById(id);
		return sel.value;
}
function delSelect(id){
		var sel=document.getElementById(id);
		if (sel.selectedIndex >= 0) {
			sel.options[sel.selectedIndex]=null;
			sel.selectedIndex=0;
		}
}
</script>	
<select id="s1" class="opciones" size="15">
<option value="directorio">Catálogo</option>
<option value="configuracion">Configuración</option>
<option value="enlace">Enlaces</option>
<optionvalue="rotativo">Rotativo</option>
</select>									
<select id="s2" class="opciones" size="15">
<option value="album">Álbum</option>
<option value="contenidos">Contenidos</option>
<option value="disenho">Diseño</option>
<option value="ficha_empresa">Ficha de Empresa</option>
<option value="microweb">Espacios</option><option value="localizacion">Localizacion</option>
</select>

<a href="#" onclick="selector('s2','s1');">Poner</a>			
<a href="#" onclick="selector('s1','s2');">Quitar</a>
  #3 (permalink)  
Antiguo 05/04/2009, 07:02
 
Fecha de Ingreso: abril-2008
Mensajes: 435
Antigüedad: 16 años
Puntos: 10
Respuesta: Listas dependientes

Muchas gracias xurxinho lo voy a probar y despues te cuento que tal anduvo

saludos
  #4 (permalink)  
Antiguo 05/04/2009, 07:40
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 4 meses
Puntos: 126
Respuesta: Listas dependientes

Hola

Mas sencillo, por el maestro Javier_B. Solo necesitaba una pequeña modificación

Código javascript:
Ver original
  1. <style type="text/css">
  2. select {width:80px}
  3. </style>
  4. <script type="text/javascript">
  5. <!--
  6. function pasar1() {
  7.     obj=document.getElementById('sel1');
  8.     if (obj.selectedIndex==-1) return;
  9.   for (i=0; opt=obj.options[i]; i++)
  10.     if (opt.selected) {
  11.         valor=opt.value; // almacenar value
  12.         txt=obj.options[i].text; // almacenar el texto
  13.         obj.options[i]=null; // borrar el item si está seleccionado
  14.         obj2=document.getElementById('sel2');
  15.     opc = new Option(txt,valor);
  16.         eval(obj2.options[obj2.options.length]=opc);   
  17.   }
  18. }
  19.  
  20.  
  21.  
  22. function pasar2() {
  23.     obj=document.getElementById('sel2');
  24.     if (obj.selectedIndex==-1) return;
  25.   for (i=0; opt=obj.options[i]; i++)
  26.     if (opt.selected) {
  27.         valor=opt.value; // almacenar value
  28.         txt=obj.options[i].text; // almacenar el texto
  29.         obj.options[i]=null; // borrar el item si está seleccionado
  30.         obj2=document.getElementById('sel1');
  31.         opc = new Option(txt,valor);
  32.         eval(obj2.options[obj2.options.length]=opc);
  33.   }
  34. }
  35. -->
  36. </script>
  37. </head>
  38.  
  39. <body>
  40. <p>
  41. <label for="sel1">Origen:</label>
  42. <select id="sel1" size="5" multiple="multiple">
  43. <option value="1">Uno</option>
  44. <option value="2">Dos</option>
  45. <option value="3">Tres</option>
  46. <option value="4">Cuatro</option>
  47. <option value="5">Cinco</option>
  48. </select>
  49. <label for="sel2">Destino:</label>
  50. <select id="sel2" size="5">
  51. </select></p>
  52. <input type="button" value="Pasar >>" onclick="pasar1()" />
  53. <input type="button" value="<< Pasar" onclick="pasar2()" />

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #5 (permalink)  
Antiguo 05/04/2009, 07:46
Avatar de gjx2  
Fecha de Ingreso: agosto-2008
Ubicación: R.D
Mensajes: 1.153
Antigüedad: 15 años, 8 meses
Puntos: 139
Respuesta: Listas dependientes

xurxinho

Código:
function selector(s,s2){
	if(selected(s)){                     
		putSelect(s2,getTextSelect(s),getValueSelect(s));
		delSelect(s);
	}
	
}
1- Olvidaste crear la funcion " selected " , por eso tu codigo da error .
2- Los enlaces estan alreves

Debe de ser haci
Código HTML:
<a href="#" onclick="selector('s1','s2');">Poner</a>			
<a href="#" onclick="selector('s2','s1');">Quitar</a> 

Modifique el codigo , y ahora luce de esta manera.

Código:
<script type='text/javascript'>

function selector(s,s2){
	if(selected(s)){
		putSelect(s2,getTextSelect(s),getValueSelect(s));
}		delSelect(s);

}

function selected(s){
var sel=document.getElementById(s);	
var index = sel.selectedIndex;
if(index>-1){
return true;
}else{return false;
}
}


function putSelect(id,texto,valor){
    var sel=document.getElementById(id);
	sel[sel.length]= new Option(texto,valor);
}

function getTextSelect(id){
		var sel=document.getElementById(id);	
        var indiceSeleccionado = sel.selectedIndex;
        return sel.options[indiceSeleccionado].text;

}

function getValueSelect(id){
		var sel=document.getElementById(id);
		return sel.value;
}

function delSelect(id){
		var sel=document.getElementById(id);
		if (sel.selectedIndex >= 0) {
		sel.options[sel.selectedIndex]=null;
		sel.selectedIndex=0;
		}
}
</script>
Código HTML:
<div>
<select id="s1" class="opciones" size="15">

<option value="directorio">Catálogo</option>
<option value="configuracion">Configuración</option>
<option value="enlace">Enlaces</option>
<option value="rotativo">Rotativo</option>

</select>	
		
						
<select id="s2" class="opciones" size="15">
<option value="album">Álbum</option>
<option value="contenidos">Contenidos</option>
<option value="disenho">Diseño</option>
<option value="ficha_empresa">Ficha de Empresa</option>
<option value="microweb">Espacios</option><option value="localizacion">Localizacion</option>
</select>

<a href="#" onclick="selector('s1','s2');">Poner</a>			
<a href="#" onclick="selector('s2','s1');">Quitar</a>
</div> 
  #6 (permalink)  
Antiguo 05/04/2009, 10:39
 
Fecha de Ingreso: abril-2008
Mensajes: 435
Antigüedad: 16 años
Puntos: 10
Respuesta: Listas dependientes

Gracias por la correccion jgx2 funciona perfecto.
Adler gracias a ti tambien por la otra solucion que diste la voy aprobar a ver que tal funciona

saludos
  #7 (permalink)  
Antiguo 06/04/2009, 06:11
 
Fecha de Ingreso: abril-2008
Mensajes: 435
Antigüedad: 16 años
Puntos: 10
Respuesta: Listas dependientes

Hola de nuevo, confirmo que todo funciona perfecto, lo que no pude lograr es que el javascript me tome multiples selecciones, no se como hacer, supongo que se tiene que guardar en un array

gracias de nuevo
saludos
  #8 (permalink)  
Antiguo 06/04/2009, 06:58
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 4 meses
Puntos: 126
Respuesta: Listas dependientes

Hola

Veamos si esto te ayuda

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #9 (permalink)  
Antiguo 07/04/2009, 05:59
 
Fecha de Ingreso: abril-2008
Mensajes: 435
Antigüedad: 16 años
Puntos: 10
Respuesta: Listas dependientes

Gracias por el link adler, tenia pensado que se hacia asi.
Pero tengo un ultimo problema con todo esto, he intentado modificar el javascript para que me permita hacer seleccion multiple del listado, es decir que al marcar con shift y/o control me permita pasar muchos elementos al otro listado de una sola vez, pero no lo logre, esto me seria util ya que el listado contendra unos 100 a 200 elementos, si me pueden dar una mano con esto ultimo se los agradecere

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 11:00.