Google

tunait.com » Tutorial » Listas dependientes


Listas dependientes desde base de datos con ASP y Access (III)

Listas dependientes con ASP y Access (II)

Escribiendo el HTML

Ahora sólo nos queda escribir en la sección body del documento los 3 selectores. El primero lo debemos rellenar con los valores iniciales que serán las categorías principales. Para ello realizamos una última consulta a la base dedatos pidiendo aquellos registros cuyo id_categoria_padre sea igual a 0.


<form actin="accion">
  <fieldset>
   <select name="select" onchange="slctryole(this,this.form.select2)">
      <option>- - Seleccionar - -</option>
<%
   query = "select * from categorias_productos where id_categoria_padre = 0 order by nombre_categoria"
	set rc = conec.execute(query)
do while not rc.eof %>
<option value="<%=rc("id_categoria")%>"><%=rc("nombre_categoria")%></option> <% rc.moveNext Loop conec.close set conec = nothing %> </select> <select name="select2" onchange="slctryole(this,this.form.select3)"> <option>- - - - - -</option> </select> <select name="select3"> <option>- - - - - -</option> </select> </fieldset> </form>

 

Código fuente completo


<!DOCTYPE html 
      PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="es" xml:lang="es">
<head>
<title>Listas dependientes con PHP y mySQL</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<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
         }
      }
   }
}
<%
query = "select * from categorias_productos order by id_categoria_padre" set rc = conec.execute(query) do while not rc.eof contador = 0 %> var cat_<%=rc("id_categoria") %>=new Array() cat_<%=rc("id_categoria") & "[" & contador %>] = new slctr('- -<%= rc("nombre_categoria") %>- -') <% if rc("id_categoria_padre") = 0 then sufijo = "categoria" query2 ="select * from categorias_productos where id_categoria_padre = " & rc("id_categoria") & " order by nombre_" & sufijo else sufijo = "producto" query2 = "select * from productos where id_categoria = " & rc("id_categoria") & " order by nombre_" & sufijo end if set rc2 = conec.execute(query2)
do while not rc2.eof contador = contador + 1 %> cat_<%= rc("id_categoria") & "[" & contador %>] = new slctr("<%=rc2("nombre_" & sufijo)%>",'cat_<%=rc2("id_categoria")%>') <% rc2.moveNext Loop rc.moveNext Loop
set rc = nothing
set rc2 = nothing
%> //--> </script> </head> <body> <form action="accion"> <fieldset> <select name="select" onchange="slctryole(this,this.form.select2)"> <option>- - Seleccionar - -</option> <% query = "select * from categorias_productos where id_categoria_padre = 0 order by nombre_categoria" set rc = conec.execute(query) do while not rc.eof %> <option value="cat_<%=rc("id_categoria")%>"><%=rc("nombre_categoria")%></option> <% rc.moveNext Loop conec.close set conec = nothing %> </select> <select name="select2" onchange="slctryole(this,this.form.select3)"> <option>- - - - - -</option> </select> <select name="select3"> <option>- - - - - -</option> </select> </fieldset> </form> </body> </html>

Copyright © 2006 www.tunait.com todos los derechos reservados