Un saludo:
Estoy intentando hacer funcionar el codigo de ejemplo de Tunait que aparece en
www.tunait.com para Selects dependientes con ACCESS y ASP, ya que funciona tanto firefox como iexplorer.
El caso es que el primer select muestra las categorías y el segundo select solo muestra la categoria seleccionada en el primer select.
En mi caso solo me interesa con dos selectores. Alguien puede decirme si solo sería necesario eliminar el tercer selector del codigo html?.
No consigo dar con lo que estoy haciendo mal. Podría alguien echarme una mano.
Gracias por todo
Los valores que uso en las tablas son:
Diseño:
categoria_productos
---------------------
id_categoria: Autonumerico
nombre_categoria: Texto(50)
id_categoria_padre: Numero (Entero Largo)
productos:
-----------
id_producto: Autonumerico
nombre_producto: Texto(50)
id_categoria: (Entero Largo)
Valores Categoria:
id_categoria Nombre_categoria id_categoria_padre
---------------------------------------------------------
1 Cementos 0
2 Herramientas 0
3 Pulidores 0
Valores Producto
id_producto Nombre_producto id_categoria
-----------------------------------------------------
1 Blanco 1
2 Transparente 1
3 Metalicas 2
4 Plasticas 2
5 Manuales 3
6 Automáticos 3
El codigo del fichero html, es el siguiente:
Código:
<!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/
[email protected]
*************************************************/
<!--
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
}
}
}
}
<%set Conec= Server.CreateObject("ADODB.Connection")
Set Rc=Server.CreateObject("ADODB.Recordset")
Conec.ConnectionString = "prueba.com"
query = "select * from categorias_productos order by id_categoria_padre"
conec.open
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>