
17/05/2006, 07:09
|
 | | | Fecha de Ingreso: marzo-2006
Mensajes: 59
Antigüedad: 19 años, 2 meses Puntos: 0 | |
Puede que te sirva este codigo Pero tengo un problema y es que no se como hacer para que queden las dos listas con la selección...de hecho voy a proponer este tema a ver si alguien me ayuda...por lo pronto te puede servir... 'inicio la lista desplegable <SELECT NAME="SUCURSALES" SIZE="1" OnChange="ComponerLista (document.forms.Listas.SUCURSALES[selectedIndex].value);">
<% 'abro las conexiones y los recordsets
set oConn=Server.CreateObject("ADODB.Connection")
set rs=Server.CreateObject("ADODB.Recordset")
set rs1=Server.CreateObject("ADODB.Recordset")
set oConnLOG=Server.CreateObject("ADODB.Connection")
set rslog=Server.CreateObject("ADODB.Recordset")
oConn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("basededatos.mdb")
SQL="SELECT lo que necesites mostrar from la tabla que necesites mopstrar"
rs.Open SQL, oConn
cuenta=1
%>
<OPTION >Seleccione una Sucursal...</option>
<% 'aqui yo presento sucursales - xsuc es la variable que guarda el valor de la 'sucursal elegida
while not rs.EOF
%>
<OPTION VALUE="<%=rs.Fields("SUC")%>"
<% if rs.Fields("SUC")= XSUC then%>
SELECTED
<%end if%>><FONT SIZE=1>
<%=rs.Fields("DESCSUC")%></FONT></OPTION>
<%
rs.MoveNext
cuenta=cuenta+1
wend
rs.Close
%>
</SELECT> 'inicio la lista de oficinas que dependen de las sucursales
<B>OFICINAS</B>
<br>
<SELECT NAME="OFICINAS" SIZE="1">
</SELECT>
<B></B>
<tr>
<td>
<tr>
<td>
<INPUT TYPE="submit" value="Consultar"></FORM> 'este script me llena la segunda lista dependiendo del valor de la sucursal 'seleccionada anteriormente. alguna vez lo copie de las FAQ's creo...
<SCRIPT LANGUAGE="Javascript">
<!--
function Tupla ( campo1, campo2 )
{
this.campo1 = campo1;
this.campo2 = campo2;
}
<% 'ARREGLO PARA LISTA DE SUCURSALES
'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 DISTINCT LOCALIDADES.[Codigo Oficina Comercial] AS SUC, LOCALIDADES.[Descripcion Oficina Comercial] AS DESCSUC, LOCALIDADES.[Codigo Agencia] AS OFI, LOCALIDADES.DescABRV AS DESCOFI FROM METAS LEFT JOIN LOCALIDADES ON METAS.LOCALIDAD = LOCALIDADES.[Codigo Agencia] ORDER BY LOCALIDADES.[Codigo Oficina Comercial]"
rs.Open SQL, oConn
cuenta=0
contador="basura"
while not rs.EOF
if contador<>rs.Fields("SUC") then
' cambio de categoria, empiezo a contar en 0
cuenta=0
contador=rs.Fields("SUC")
'además tengo que crear un nuevo array para la categoría
%>
var opciones<%=contador%> = new Array();
<%
end if
%>
opciones<%=contador%>[<%=cuenta%>]=new Tupla("<%=rs.Fields("DESCOFI")%>","<%=rs.Fields("O FI")%>");
<%
cuenta=cuenta+1
rs.MoveNext
wend
%>
<%
'Limpiamos objetos
rs.Close
set rs=nothing
set rs1=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.OFICINAS.options[contador] = optionObj;
} // for
} // ComponerLista
function BorrarLista() {
Listas.OFICINAS.length=0;
}
//Inicializamos
ComponerLista (1);
A mi me funciona bien, pero como te dije las listas no mantienen su valor seleccionado....voy a crear un tema nuevo a ver si alguien se interesa y me ayuda.... |