Foros del Web » Programando para Internet » ASP Clásico »

Listas dinamicas dependientes

Estas en el tema de Listas dinamicas dependientes en el foro de ASP Clásico en Foros del Web. Hol Quiero hacer una listas dependientes tipo las q aparacen en windows al intalar una impresora. Fabricante--> Marca esto con datos dinamicos La duda q ...
  #1 (permalink)  
Antiguo 18/04/2002, 09:51
 
Fecha de Ingreso: enero-2002
Mensajes: 1.438
Antigüedad: 23 años, 3 meses
Puntos: 0
Listas dinamicas dependientes

Hol
Quiero hacer una listas dependientes tipo las q aparacen en windows al intalar una impresora.
Fabricante--> Marca

esto con datos dinamicos

La duda q tengo es como tengo q utilizar el evento onChange del menu de fabricantes para llamar a una funcion q actualice el menu de las marcas.

gracias

os transcribo varios trozos de codigo por si pueden ayudar
------------------------------------------------------------------------<%
set Fabricantes = Server.CreateObject("ADODB.Recordset")
Fabricantes.ActiveConnection = MM_Empresas_STRING
Fabricantes.Source = "SELECT Fabricante FROM FS GROUP BY Fabricante ORDER BY Fabricante ASC"
Fabricantes.CursorType = 0
Fabricantes.CursorLocation = 2
Fabricantes.LockType = 3
Fabricantes.Open()
Fabricantes_numRows = 0
%>
<%
Dim Marcas__MMColParam
Marcas__MMColParam = "-1"
if Request.QueryString("MenuFabricantes") <> "") then Marcas__MMColParam = Request.QueryString("MenuFabricantes")

%>
<%
set Marcas = Server.CreateObject("ADODB.Recordset")
Marcas.ActiveConnection = MM_Empresas_STRING
Marcas.Source = "SELECT * FROM FS WHERE Fabricante = '" + Replace(Marcas__MMColParam, "'", "''") + "' AND Denominacion <> '' ORDER BY Marca ASC"
. . .
%>

Os transcrivo el formulario con las dos listas
------------------------------------------------------------------------
<form name="form2" action="">
<select name="MenuFabricantes" size="10" onChange= <% Reselect() %> >
<%
While (NOT Fabricantes.EOF)
%>
<option value="<%=(Fabricantes.Fields.Item("F abricante").Value)%>" ><%=(Fabricantes.Fields.Item("Fabricant e").Value)%></option>
<%
Fabricantes.MoveNext()
Wend
If (Fabricantes.CursorType > 0) Then
Fabricantes.MoveFirst
Else
Fabricantes.Requery
End If
%>
</select>
  #2 (permalink)  
Antiguo 18/04/2002, 11:11
Avatar de venom_plus  
Fecha de Ingreso: marzo-2002
Ubicación: Nogales, Sonora
Mensajes: 61
Antigüedad: 23 años, 1 mes
Puntos: 0
Re: Listas dinamicas dependientes

Hola, hace tiempo en este foro (o en otro, no recuerdo) me encontre este codigo, yo no le he probado pero lo guarde en mi maquina, supongo que te puede servir. Aqui utiliza el concepto de Ciudad y Estado, pero (si no entendi mal) es lo que quieres.
Código:
<%@ LANGUAGE="VBSCRIPT" %>
<%
DIM ConnProducto,SQL,RS1,Estados
SET ConnProducto = Server.CreateObject("ADODB.Connection")
ConnProducto.Open "UID=usuario;PWD=password;DSN=Nombre del DSN"
SET RS1= Server.CreateObject("ADODB.Recordset") 

SQL = "SELECT * FROM Estados" 

SET RS1 = ConnProducto.Execute(SQL) 


%> 
<HTML>
<HEAD>
<SCRIPT LANGUAGE=vbscript>
<!--

Sub Estados_onchange
document.forms("uno").submit()
End Sub

-->
</SCRIPT>
</HEAD>
<BODY>
<Form name="uno" action="Combo.asp?ProEstado=1">
<%IF Request("Estados")="" THEN
Estados=1
Else
Estados=cint(Request("Estados"))
ENd if%>
<P><SELECT id=Estados style="WIDTH: 173px" name=Estados>
<%Do Until RS1.EOF%> 
<OPTION value="<%=RS1(0)%>" <%If Cstr(Request("Estados"))=Cstr(RS1(0)) THEN%>SELECTED<%End if%>> <%=RS1(1)%></OPTION>
<%RS1.MoveNext
Loop%> 
</SELECT></P>

<%
Dim RS2,SQL2
SET RS2=Server.CreateObject("ADODB.Recordset")
IF Request("Estados")="" Then
SQL2="SELECT * FROM Ciudades WHERE Idestado =1" 
Else
SQL2="SELECT * FROM Ciudades WHERE Idestado =" & Request("Estados")
End if
SET RS2 = ConnProducto.Execute(SQL2)%>
<P><SELECT id=Ciudades style="WIDTH: 173px" name="Ciudades"> 
<%Do Until RS2.EOF%>
<OPTION value="<%=RS2(0)%>"><%=RS2(1)%></OPTION>
<%RS2.MoveNext
Loop
%>
</SELECT></P> 
</Form>
</BODY>
</HTML>
  #3 (permalink)  
Antiguo 18/04/2002, 13:43
Avatar de bakanzipp  
Fecha de Ingreso: noviembre-2001
Ubicación: santiago de shilli
Mensajes: 2.554
Antigüedad: 23 años, 5 meses
Puntos: 0
Re: Listas dinamicas dependientes

si sabes algo de javascript quizas esto te sirva...
ke te parece usar listas dependientes sin necesidad de refrescar la pag...echale un vistazo..

<a href='ir.asp?http://www.aspfacil.com/codigo/listasdependientes.asp' target='_blank'>http://www.aspfacil.com/codigo/listasdep...</a>
  #4 (permalink)  
Antiguo 18/04/2002, 13:52
 
Fecha de Ingreso: enero-2002
Mensajes: 1.438
Antigüedad: 23 años, 3 meses
Puntos: 0
Re: Listas dinamicas dependientes

Gracias, es el fichero q tenia de referencia y me ha ayudado mucho aunque no se JScrip

lo tengo arreglado del todo menos un detalle en el parametro y las variables.
excepto por ese detalle os pego la subfuncion q he modificado, quizas a alguien le sirva.
En mi opinion es mas rapida pues se realiza el filtra en sql cosa muy importante si como yo tienes 6000 productos.
si alguien puede arreglar el tema de la variable/parametro q explico en el otro post q me avise.
---------------------------------------------&lt;SCRIPT LANGUAGE=&quot;Javascript&quot;&gt;

function Reselect(fabrica)

{
Listas.Productos.length=0;
&lt;%
Dim Marca__MMColParam
Marca__MMColParam =&quot;bayer&quot;
set Marca = Server.CreateObject(&quot;ADODB.Recordset&quot;)
Marca.ActiveConnection = MM_Empresas_STRING
Marca.Source = &quot;SELECT * FROM FS WHERE Fabricante = '&quot; + Replace(Marca__MMColParam, &quot;'&quot;, &quot;''&quot;) + &quot;' AND Denominacion &lt;&gt; '' ORDER BY Marca ASC&quot;
Marca.CursorType = 0
Marca.CursorLocation = 2
Marca.LockType = 3
Marca.Open()
Marca_numRows = 0
%&gt;

&lt;%
While (NOT Marca.EOF)
%&gt;

var newElem = document.createElement(&quot;OPTION&quot;)
newElem.text = &quot;&lt;%=(Marca.Fields.Item(&quot;Marca&quot;). Value)%&gt;&quot;
newElem.value = &quot;&lt;%=(Marca.Fields.Item(&quot;IdFS&quot;).V alue)%&gt;&quot;
document.forms(&quot;Listas&quot;).Productos.optio ns.add(newElem)
&lt;%
Marca.MoveNext()
Wend
If (Marca.CursorType &gt; 0) Then
Marca.MoveFirst
Else
Marca.Requery
End If
%&gt;
}

&lt;/SCRIPT&gt;

Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:29.