Una de las preguntas más frecuentes que recibo es cómo se puede configurar el script de Listas dependientes desde una base de datos, es decir, las líneas de configuración dependerán de los datos obtenidos de una base de datos y por lo tanto no se escriben a mano.
El tema es muy ambiguo porque todo dependerá de cómo se tengan estructurados esos datos en la base de datos. Igual he creado un caso hipotético con una determinada estructura en una base de datos para ilustrar el asunto de cómo se podría escribir en el servidor ese código Javascript necesario para las listas dependientes.
El ejemplo es para el script de listas dependientes desde una base de datos Access y usando ASP en el servidor.
Crearemos listas dependientes para mostrar categorías, subcategorías y productos (los mismos que están en el script Javascript).
NOTA: Se asume que se está familiarizado con los lenguajes ASP, VBScript y SQL. La intención de este tutorial es la de explicar los pasos y el fin con el que se dan para llegar a determinado resultado sin detenerse a explicar lo que es cada función o sentencia utilizados en estos lenguajes.
Partimos de la base de que tenemos nuestros datos dentro de 2 tablas en una base de datos.
Una tabla para almacenar categorías y subcategorías y una segunda tabla para almacenar los productos.
Consta, en principio, de 3 campos (obviamente puede tener más campos pero para el script con estos 3 campos es suficiente para lo que necesitamos)
id_categoria
nombre_categoria
id_categoria_padre
"CREATE TABLE categorias_productos (id_categoria AUTOINCREMENT
PRIMARY KEY, nombre_categoria TEXT(255), id_categoria_padre INTEGER default
0)"
La tabla para productos tendrá (al menos) estos tres campos necesarios para que configurar el script.
id_producto
nombre_producto
id_categoria
"CREATE TABLE productos2 (id_producto AUTOINCREMENT PRIMARY KEY, nombre_producto TEXT(255), id_categoria INTEGER)"
En la sección head de nuestro documento colocaremos las dos funciones Javascript necesarias:
<script type="text/javascript">
/************************************************
Listas dependientes por Tunait!(5/1/04)
Si quieres usar este script en tu sitio
eres libre de hacerlo con la condición
de que permanezcan intactas estas líneas,
osea, los créditos.
No autorizo a publicar y ofrecer el código
en sitios de script sin previa autorización
Si quieres publicarlo, por favor, contacta conmigo.
http://javascript.tunait.com/
tunait@yahoo.com
*************************************************/
<!--
function slctr(texto,valor){
this.texto = texto
this.valor = valor
}
function slctryole(cual,donde){
if(cual.selectedIndex != 0){
donde.length=0
cual = eval(cual.value)
for(m=0;m<cual.length;m++){
var nuevaOpcion = new Option(cual[m].texto);
donde.options[m] = nuevaOpcion;
if(cual[m].valor != null){
donde.options[m].value = cual[m].valor
}
else{
donde.options[m].value = cual[m].texto
}
}
}
}
Listas dependientes con ASP y Access (II) - Generando el código