Ver Mensaje Individual
  #5 (permalink)  
Antiguo 17/05/2006, 07:09
Avatar de aurelitus
aurelitus
 
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....