.  

 

 

.
.

26 / 04 / 2017

Usuarios conectados: 2

Cargando documento...

Buscar:

.

Este Sitio:

Principal

Dreamweaver

Fireworks

JavaScript

CSS

Sonido

Artículos

Links

E-ufemismos

Descargas

Historial

 

Mailing List:

Suscríbete a la lista de correo, No practico spamming y ofrece algunas ventajas.

Pulsa aquí para saber más y suscribirte.

 

Recomendados:

Tecnorama >JavaScript

 

Múltiples Menus Dependientes

Versión para imprimir | Translate this page

Este script permite crear listas dependientes unas de otras, hasta el número que tú quieras. En el archivo de ejemplo verás una que genera 4 listas desplegables, dependientes una de otra.No voy a explicar mucho qué hace cada función, sino que me limitaré a indicar las instrucciones para que cada uno lo haga funcionar a su gusto.

En primer lugar, indicar que, aunque puede utilizarse para ser llenado manualmente (el de ejemplo está creado de esa manera), el script está pensado para utilizarlo junto con una Base de Datos, ya que se ha simplificado al máximo la entrada de datos para poder insertarlo dentro de una región repetida, independientemente del lenguaje de servidor.

Empecemos: El script se compone de 2 bloques:
El primero, que va situado en el encabezado del documento, no necesita ser modificado.

En el segundo bloque, que debe ir colocado después del último listbox, es donde que hay que añadir los datos. Los pasos a seguir son:

  1. Buscar esta llamada: "TCN_makeComboGroup('continente','pais','ciudad','calle');"
    En esta llamada, hay que modificar los parámetros, para colocar todos los nombres de los menús que se van a ver implicados (es decir, el valor del atributo "name", siguiendo este orden:
    El primero cargará el listado principal
    El segundo, los datos dependientes del primero
    El tercero, los datos dependientes del segundo
    ...
    El octavo, los datos dependientes del séptimo listbox.
    En el script de ejemplo he utilizado 'Continente', 'Pais', 'Ciudad' y 'calle', en este orden, ya que cada combo depende del anterior.
    Si por ejemplo quisieramos crear un grupo de equipos, la función podría ser:
    TCN_makeComboGroup('deporte','categoría','equipo');
  2. Definir la variable "separator": Esta variable definirá el caracter o caracteres que indicarán dónde se separa cada valor del punto 3. en el ejemplo he utilizado "<->", pero puedes definir la que quieras, dependiendo del tipo de contenido que tengas, ya que esa cadena no puede aparecer en ninguno de los contenidos. Es decir: si uno de los textos que va a aparecer en los listbox es "mi texto>", no utilices ">" como separador.
  3. Llamar a la función "TCN_addContent" tantas veces como sea necesario para añadir contenidos. El contenido debe reunir estas condiciones:
    • Debe tratarse de una cadena de caracteres, donde cada valor debe separarse por el símbolo utilizado en la variable "separator".
    • Debe tener el doble de valores que el número de listboxes utilizados ya que, obviamente, cada listbox necesita un par de valores (uno para texto y otro para su valor) .
    • El orden de los valores es el indicado en la función TCN_makeComboGroup(): Es decir: el primer valor es el texto del primer combo, el segundo es el valor del primer combo, el tercero es el texto del segundo combo... Por ejemplo, si hemos hecho esta llamada:
      TCN_addContent("America<+>1<+>EE.UU<+>1<+>Miami<+>1<+>calle1<+>1");
      Se ve que cada valor está separado por el valor que declaramos en "separator" y que el conjunto de valores sigue este modelo:
      • Para el listbox "continente" el texto es América y su valor será 1;
      • Para "pais" los valores son "EE.UU" para el texto y "1" para su valor;
      • Para "ciudad", los valores son "Miami" y "1";
      • Para "calle": "calle1" y "1"
      • Total: 4 menus x 2 valores = 8 elementos.

    ¿Qué sucede si no necesito declarar los valores de todos los menús, o necesito otro tipo de valor que no sea numérico?
    Bueno, para la primera pregunta la respuesta es "añade un valor falso". Para la segunda la respuesta es "añade el valor que necesites". Si por ejemplo sólo necesitaras el valor en el ultimo menu y que este fuera una URL para redireccionar al usuario, el código podría ser:
    TCN_addContent("Software<->xx<->Empresas<->xx<->Macromedia<->http://www.macromedia.com")
    Es decir, un grupo de 3 menus, donde sólo el valor del tercero es importante.(el botón para enviar a la URL lo dejo como trabajo tuyo).

  4. Para terminar: Asignar a los listboxes la llamada a la funcion "reload(this)", de manera que un ejemplo de listbox puede ser:
    <select name="continente" onChange="reload(this)">

Y nada más, creo que un vistazo al archivo de ejemplo explicará mejor cómo funciona todo ello: Recordad que todos los cambios se hace en la parte del cuerpo que va después del último ListBox. El código que va colocado en el encabezado no hace falta modificarlo.

Para cualquier duda, podéis utilizar el foro

¿Comentarios? 118, de momento. Mostrando 1 ->5

1.- Walking in the prneesce of giants here. Cool thinking all around!

2.- Glad I've finally found soenihtmg I agree with! http://rnxiqgkza.com [url=http://rlfvdw.com]rlfvdw[/url] [link=http://aynohdibl.com]aynohdibl[/link]

3.- Time to face the music armed with this great inrofmation.

4.- Estoy totalmente de acuerdo, tecnología seguro que existe, pero hay muchos intereses que frenan la expansión de estas teglonocías. Al final todo llegará, pero quizás sea tarde…

5.- I found just what I was needed, and it was ennnetaitirg!

« Previous | 1 - 5 | 6 - 10 | 11 - 15 | 16 - 20 | 21 - 25 | 26 - 30 | 31 - 35 | 36 - 40 | 41 - 45 | 46 - 50 | Next »

Añade tu comentario



Escribe el código de la imagen superior:

:

TECNORAMA es simplemente una página personal. No sirve ni de promoción del autor ni cosas por el estilo.
Todos los códigos, textos y tutoriales son de libre uso mientras se mencione al autor (no es mucho pedir)
Este sitio es compatible con IE6/NS6/Mozilla1.0
Para contactar, puedes enviarme un e-mail a tecnorama@hotmail.com