Hola a todos. Continuo con mi problema de listasdependientes metido en un
include.
Os pongo el ejemplo que tengo hecho.
Tengo la pagina listasdependientes.asp que muestra dos listas dependientes
de paises y ciudades. Cuando esta página la ejecuto sin estar ente <%sub
listas %> <% end sub%> funciona perfectamente. Pero cuando esta pagina
la incluyo en una pagina principal que la llama ya no me funciona.
Os pongo aquí el código a ver si vosotros veis el error.
Todos los archivos los tengo en C:\Inetpub\wwwroot
Espero que me podais ayudar.
Gracias de nuevo.
Canela
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- #include file="listasdependientespaises.asp" -->
<HTML>
<HEAD>
<META http-equiv=Content-Type content="text/html; charset=unicode">
<table width="780" border="0" cellspacing="0" align="center" >
<tr>
<td width="119">
</td>
<td width="660">
<%call listas %>
</td>
</tr>
</table>
</BODY>
</HTML>
<% sub listas %>
<HTML>
<HEAD>
<TITLE>Listas dependientes</TITLE>
</HEAD>
<BODY>
<H2><CENTER>Listas dinámicas dependientes</CENTER></H2>
<P><B>Elige un pais para ver las provincias:</B>
<P>
<FORM NAME="Listas" METHOD="POST" ACTION="">
<B>Paises</B>
<SELECT NAME="paises" SIZE="1"
OnChange="ComponerLista
(document.forms.Listas.paises[selectedIndex].value);">
<%
Dim oConn, rs, SQL, cuenta, pais
set oConn=Server.CreateObject("ADODB.Connection")
set rs=Server.CreateObject("ADODB.Recordset")
oConn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" &
Server.MapPath("mibase.mdb")
SQL="SELECT * FROM paises"
rs.Open SQL, oConn
cuenta=1
while not rs.EOF
%>
<OPTION VALUE="<%=rs.Fields("Idpais")%>"
<% if cuenta=1 then%>
SELECTED
<%end if%>>
<%=rs.Fields("pais")%></OPTION>
<%
rs.MoveNext
cuenta=cuenta+1
wend
rs.Close
%>
</SELECT>
<P><B>Provincias</B>
<SELECT NAME="Provincias" SIZE="1">
</SELECT>
</FORM>
<SCRIPT LANGUAGE="Javascript">
<!--
function Tupla ( campo1, campo2 )
{
this.campo1 = campo1;
this.campo2 = campo2;
}
<%
'Vamos a crear nuestros arrays de productos desde ASP
'El primer if detecta un cambio en la categoría para
'crear un nuevo array en Javascript
SQL="SELECT * FROM provincias ORDER BY npais, IdProvincia"
rs.Open SQL, oConn
cuenta=0
cat="basura"
while not rs.EOF
if cat<>rs.Fields("npais") then
' cambio de categoria, empiezo a contar en 0
cuenta=0
cat=rs.Fields("npais")
'además tengo que crear un nuevo array para la categoría
%>
var opciones<%=cat%> = new Array();
<%
end if
%>
opciones<%=cat%>[<%=cuenta%>]=new
Tupla("<%=rs.Fields("provincia")%>","<%=rs.Fields("IdProvincia")%>");
<%
cuenta=cuenta+1
rs.MoveNext
wend
%>
<%
'Limpiamos objetos
rs.Close
set rs=nothing
oConn.Close
set oConn=nothing
%>
var contador;
function ComponerLista ( array ) {
// Compone la lista dependiente a partir
// del valor de la opcion escogida en la lista "padre"
BorrarLista();
array = eval("opciones" + array);
for (contador=0; contador<array.length; contador++)
{
// añade elementos nuestro combobox
var optionObj = new Option( array[contador].campo1,
array[contador].campo2 );
Listas.Provincias.options[contador] = optionObj;
} // for
} // ComponerLista
function BorrarLista() {
Listas.Provincias.length=0;
}
//Inicializamos
ComponerLista (1);
</SCRIPT>
<br>
</BODY>
</HTML>
<% end sub %>
Leer las respuestas