List relacionados

26/11/2003 - 15:23 por Hernan Nieto | Informe spam
Hola:

Como puedo hacer para tener 2 list en una pagina Asp, cada uno de ellos
consultando 2 tablas de una Bd de Sql Server, y que la seleccion de algun
item del 1er list me filtre solo los que cumplen esa condicion en el segundo
list. Se puede hace en la misma pagina o tengo que crear otra pagina que
reciba como parametro lo que se selecciono en el 1er list.

Muchas gracias.

Preguntas similare

Leer las respuestas

#6 Sashka
28/11/2003 - 16:07 | Informe spam
Ok tienes razón... hice el ejemplo muy al vuelo... para eso sólo debes
comparar el valor del recordset con el de la variable del request.form a la
que le das el valor BASICO cuando está vacía...

Aca:
While (NOT Recordset2.EOF)
if BASICO <> Recordset2(campo) then
%>
<option
value="<%=(Recordset2.Fields.Item("cnivel").Value)%>"><%=(Recordset2.Fields.
Item("cnivel").Value)%></option>
<%
else '' es igual entonces va seleccionado
%>
<option
value="<%=(Recordset2.Fields.Item("cnivel").Value)%>">SELECTED<%=(Recordset2
.Fields.
Item("cnivel").Value)%></option>
<%
Recordset2.MoveNext()
Wend

Sashka


"Hernan Nieto" escribió en el mensaje
news:%
Sashka:

Gracias a tu ayuda pude hacerlo funcionar, lo unico que me gustaria es que
el
Select nivel seleccione el nivel que el usuario eligio cuando se vuelve a
cargar la pagina, lo que hace ahora es seleccionar siempre la primera
opcion.

Te doy un ejemplo:

La tabla nivel tiene los niveles posibles de estudio:
BASICO,PRIMARIO,TERCIARIO,UNIVERISTARIO

La tabla estudios es filtrada solo los titulos que corresponden al nivel
seleccionado, todo funciona bien, solo que el select nivel siempre esta en
BASICO.

De nuevo gracias por tu ayuda.


****************codigo*************

<%@LANGUAGE="VBSCRIPT"%>
<!--#include file="../Connections/Recordset1.asp" -->

<%
Dim Recordset1__vcNivel
BASICO = request.form("nivel")
If (BASICO <> "") Then
Recordset1__vcNivel = BASICO
Else
Recordset1__vcNivel = "CICLO BÁSICO "
End If
%>

<%
Dim Recordset1
Dim Recordset1_numRows

Set Recordset1 = Server.CreateObject("ADODB.Recordset")
Recordset1.ActiveConnection = MM_Recordset1_STRING
Recordset1.Source = "{call dbo.sp_titulos('" +


Replace(Recordset1__vcNivel,
"'", "''") + "')}"
Recordset1.CursorType = 0
Recordset1.CursorLocation = 2
Recordset1.LockType = 1
Recordset1.Open()

Recordset1_numRows = 0
%>
<%
Dim Recordset2
Dim Recordset2_numRows

Set Recordset2 = Server.CreateObject("ADODB.Recordset")
Recordset2.ActiveConnection = MM_Recordset1_STRING
Recordset2.Source = "{call dbo.sp_nivelestudio}"
Recordset2.CursorType = 0
Recordset2.CursorLocation = 2
Recordset2.LockType = 1
Recordset2.Open()

Recordset2_numRows = 0
%>

<HTML>
<HEAD>
<TITLE>Listas dependientes</TITLE>

<SCRIPT LANGUAGE="Javascript">
function envialista()
{
document.form1.submit();
}
</SCRIPT>
</HEAD>

<BODY>

<form name="form1" method="post" action="prueba.asp">

<select name="nivel" OnChange="envialista()">
<%
While (NOT Recordset2.EOF)
%>
<option



value="<%=(Recordset2.Fields.Item("cnivel").Value)%>"><%=(Recordset2.Fields.
Item("cnivel").Value)%></option>
<%
Recordset2.MoveNext()
Wend
If (Recordset2.CursorType > 0) Then
Recordset2.MoveFirst
Else
Recordset2.Requery
End If
%>
</select>

<select name="estudios">
<%
While (NOT Recordset1.EOF)
%>
<option



value="<%=(Recordset1.Fields.Item("ctitulo").Value)%>"><%=(Recordset1.Fields
.Item("ctitulo").Value)%></option>
<%
Recordset1.MoveNext()
Wend
If (Recordset1.CursorType > 0) Then
Recordset1.MoveFirst
Else
Recordset1.Requery
End If
%>
</select>
</form>









Respuesta Responder a este mensaje
#7 Hernan Nieto
01/12/2003 - 23:38 | Informe spam
Sashka:

gracias a tu ayuda funciono todo bien, ahora te molesto por otra cosa, no
creo que sea la ultima, como hago cuando el usuario ya ingreso todos los
datos que le requiero y quiero enviarlo a la pagina de resultados mediante
un boton, pero el action del form me envia a la misma pagina para que se
actualizen las listas. Como hago para enviarlo a otra pagina.

Gracias.
Respuesta Responder a este mensaje
#8 Sashka
02/12/2003 - 07:12 | Informe spam
No estoy segura si te entiendo...el action del form te envia a la misma
página para que se acttualize la BD????
Si es eso y después de actualizarla quieres enviarlo a otra página, lo
puedes hacer en el onload de la página, ya que todo asp se ejecuta antes de
la carga en el cliente, de modo que basta con que llames a una función de
javascript

<body onload="cambi0Pag()">



function cambioPag(p,x){
document.location.replace(paginaquequieres)
}

Sashka


"Hernan Nieto" escribió en el mensaje
news:
Sashka:

gracias a tu ayuda funciono todo bien, ahora te molesto por otra cosa, no
creo que sea la ultima, como hago cuando el usuario ya ingreso todos los
datos que le requiero y quiero enviarlo a la pagina de resultados mediante
un boton, pero el action del form me envia a la misma pagina para que se
actualizen las listas. Como hago para enviarlo a otra pagina.

Gracias.



Respuesta Responder a este mensaje
#9 Hernan Nieto
02/12/2003 - 12:51 | Informe spam
Sashka:

Me explique mal, te muestro el codigo:

<HTML>
<HEAD>
<TITLE>Listas dependientes</TITLE>
<SCRIPT LANGUAGE="Javascript">
function envialista()
{
document.form1.submit();
}
</SCRIPT>
</HEAD>
<BODY>

<form name="form1" method="post" action="prueba.asp">
<select name="nivel" OnChange="envialista()">

En el action del form llamo a la misma pagina usando el evento OnChange, si
pongo un boton Submit, como hago para me envie a otra pagina cuando el
usuario haga click en el boton.

Gracias por tu paciencia.
Respuesta Responder a este mensaje
#10 Sashka
02/12/2003 - 23:18 | Informe spam
Cambiale el action... puedes poner alli cualquier página y ésta recibirá el
submit...

Es decir, supongamos que el action en el formulario está declarado así:

<form name="form1" method="post" action="prueba33.asp">

Pero tu quieres que en el evento onchange el submit sea a tu misma
página entonces la función será así:

function envialista()
{
document.form1.action="prueba.asp";
document.form1.submit();
}

Así con el botón va a la página prueba33.asp y con el onchange a prueba.asp


Sashka

"Hernan Nieto" escribió en el mensaje
news:%
Sashka:

Me explique mal, te muestro el codigo:

<HTML>
<HEAD>
<TITLE>Listas dependientes</TITLE>
<SCRIPT LANGUAGE="Javascript">
function envialista()
{
document.form1.submit();
}
</SCRIPT>
</HEAD>
<BODY>

<form name="form1" method="post" action="prueba.asp">
<select name="nivel" OnChange="envialista()">

En el action del form llamo a la misma pagina usando el evento OnChange,


si
pongo un boton Submit, como hago para me envie a otra pagina cuando el
usuario haga click en el boton.

Gracias por tu paciencia.




Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida