Foros del Web » Programando para Internet » Javascript »

listas dependientes pero sin ciertos datos

Estas en el tema de listas dependientes pero sin ciertos datos en el foro de Javascript en Foros del Web. Hola amigos estoy tratando de hacer que una lista con valores cargados de horas y que al seleccionar uno formen otra lista con los mismos ...
  #1 (permalink)  
Antiguo 02/09/2005, 12:14
Avatar de chalchis  
Fecha de Ingreso: julio-2003
Mensajes: 1.773
Antigüedad: 20 años, 9 meses
Puntos: 21
Pregunta listas dependientes pero sin ciertos datos

Hola amigos estoy tratando de hacer que una lista con valores cargados de horas y que al seleccionar uno formen otra lista con los mismos valores pero sin los valores que seleccione previamente y todos aquellos valores menores a el es decir.

Tengo en lista A los horarios cargados
7:00
7:30
8:00
8:30
.
.
.
21:00 (aqui seria el ultima hora)

Al momento de selecionar por ejemplo 7:00 en la lista B se llenaran los valores a execepcion de 7:00.

otro ejemplo seria que selecciono 8:00 en la las lista B se llenaran los valores
a execepcion de las 7:00 y el de las 8:00 o detalle que podria toparse es si selecciono las 21:00 bueno en ese caso la lista b se llenara con un valor de default en este caso seria las 22:00.

Espero que me puedan ayudar con esto amigos.

este es mi formulario
<form name="formulario">
<select name="hora" >
<option value="A"></option>
<option value="7:00">7:00</option>
<option value="7:20">7:20</option>
<option value="8:00">8:00</option>
<option value="8:10">8:10</option>
<option value="9:00">9:00</option>
<option value="9:10">9:10</option>
<option value="10:00">10:00</option>
<option value="10:10">10:10</option>
<option value="11:00">11:00</option>
<option value="11:50">11:50</option>
<option value="12:00">12:00</option>
<option value="12:40">12:40</option>
<option value="13:00">13:00</option>
<option value="14:00">14:00</option>
<option value="15:00">15:00</option>
<option value="15:20">15:20</option>
<option value="16:00">16:00</option>
<option value="16:20">16:20</option>
<option value="17:00">17:00</option>
<option value="17:20">17:20</option>
<option value="18:00">18:00</option>
<option value="18:10">18:10</option>
<option value="19:00">19:00</option>
<option value="20:00">20:00</option>
<option value="20:50">20:50</option>
<option value="21:00">21:00</option>
</select>
<select name="B"></select>
</form>

saludos

espero sus comentarios
__________________
gerardo
  #2 (permalink)  
Antiguo 02/09/2005, 14:08
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 18 años, 8 meses
Puntos: 39
Código HTML:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="javascript">
function setListB(a)
{
	var inicio = a.selectedIndex;
	var cant = a.length;
	var b = document.formulario.horaB;
	b.length = cant - inicio;
	for (i = inicio+1; i < cant ; i++)
	{
		b.options[i-inicio].value = a.options[i].value;
		b.options[i-inicio].text = a.options[i].text;
	}
	if (b.length == 1) b.options[0].text = "22:00";

}
</script>
</head>

<body>
<form name="formulario">
<select name="horaA" size="1" onChange="setListB(this)">
<option selected></option>
<option value="7:00">7:00</option>
<option value="7:20">7:20</option>
<option value="8:00">8:00</option>
<option value="8:10">8:10</option>
<option value="9:00">9:00</option>
<option value="9:10">9:10</option>
<option value="10:00">10:00</option>
<option value="10:10">10:10</option>
<option value="11:00">11:00</option>
<option value="11:50">11:50</option>
<option value="12:00">12:00</option>
<option value="12:40">12:40</option>
<option value="13:00">13:00</option>
<option value="14:00">14:00</option>
<option value="15:00">15:00</option>
<option value="15:20">15:20</option>
<option value="16:00">16:00</option>
<option value="16:20">16:20</option>
<option value="17:00">17:00</option>
<option value="17:20">17:20</option>
<option value="18:00">18:00</option>
<option value="18:10">18:10</option>
<option value="19:00">19:00</option>
<option value="20:00">20:00</option>
<option value="20:50">20:50</option>
<option value="21:00">21:00</option>
</select>
<select name="horaB">
</select>
</form>
</body>
</html> 
Servido, amigo!
  #3 (permalink)  
Antiguo 02/09/2005, 14:47
Avatar de chalchis  
Fecha de Ingreso: julio-2003
Mensajes: 1.773
Antigüedad: 20 años, 9 meses
Puntos: 21
Sonrisa Gracias flaviovich

Funciona de maravilla
Saludos y gracias
__________________
gerardo
  #4 (permalink)  
Antiguo 02/09/2005, 15:27
Avatar de chalchis  
Fecha de Ingreso: julio-2003
Mensajes: 1.773
Antigüedad: 20 años, 9 meses
Puntos: 21
Una peña duda flaviovich

Como puedo limpiar el segundo select cuando seleccione del select "A" la ultima opcion porque se me acumulan otros es decir.

si selecciono 21:00 en el select "b" pone 22:00 hasta ahi todo bien, el detalle
es que si cambio en el select "A" a una posicion mas arriba digamos que selecciono las 7:00 el select "b" me lo pone asi:
22:00
7:20
8:00
.
.
.etc

que puedo hacer ahi?
saludos
esperos sus cometarios
__________________
gerardo
  #5 (permalink)  
Antiguo 02/09/2005, 15:44
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 18 años, 8 meses
Puntos: 39
Agrega esto al final de la funcion
if (b.length == 1)
{
b.length = 2;
b.options[1].text = "22:00";
}
El problema era, que la lista B se llenaba a partir del 2do elemento, y en el caso de la ultima (21:00), en el 1er elemento.
  #6 (permalink)  
Antiguo 02/09/2005, 15:54
Avatar de chalchis  
Fecha de Ingreso: julio-2003
Mensajes: 1.773
Antigüedad: 20 años, 9 meses
Puntos: 21
Excelnete ya trabaja mejor

Gracias Amigo, ahora si funciona bien y disculpa las molestias

Saludos
__________________
gerardo
  #7 (permalink)  
Antiguo 02/09/2005, 16:04
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 18 años, 8 meses
Puntos: 39
No es nada!
Me parece que esa funcion se puede mejorar. Si lo haces, publicalo.
suerte!
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 10:18.