Los Foros de ASPTutor.com
Home | Perfil | Registrarse | Temas Activos | Miembros | Buscar | FAQ
Usuario:
Password:
 Todos los Foros
 ASP
 Recuperar datos desde lista
 Foro Bloqueado  Tema Bloqueado


Autor Temas
Hele
Starting Member


21 Posts
Mensajes - 02 May 2007 :  15:53:43  Ver Perfil  Enviar Email
Estoy empezando con asp, y soy bastante novata.

Tengo una lista dinámica y no se como puedo recuperar el valor, ya que con el tengo que hacer varias consultas y asi poder rellenar otros campos...

lo que tengo hecho y no funciona es..

Muchas gracias por todo, un saludo!

[...]
<form name="elegproducto" method="post" action="pedido.asp" >

<select name="nombre" id="nombre" style="width:250px;" onChange="id = this[this.selectedIndex].value;">
[...]
</form>
<%
response.Write("a_prod_cod--> ")
response.Write(id)

%>


Cayetano
Starting Member


14 Posts
Posted - 02 May 2007 :  19:36:53  Ver perfil  Enviar e-mail
Hola.

Te mando un ejemplo similar a uno que he hecho yo. No se si será la mejor forma de hacerlo pero a mí me funcionó bien y creo que es bastante sencillo y claro. Aunque en mi caso no fue necesario por ser pocas listas y opciones lo hice directamente en javascript, pero también puedes cargar los valores desde base de datos con ASP.

*****
<html>
<script language="javascript">
function FVer(){
var valor;

valor=document.formu.Lista01.options[document.formu.Lista01.selectedIndex].value

if (valor == 1){
document.formu.Lista02.length = 3
document.formu.Lista02.options[0].text = ""
document.formu.Lista02.options[1].text = "Valor 01"
document.formu.Lista02.options[2].text = "Valor 02"
document.formu.Lista02.options[0].value = ""
document.formu.Lista02.options[1].value = "Valor 01"
document.formu.Lista02.options[2].value = "Valor 02"
}
else if (valor == 2){
document.formu.Lista02.length = 3
document.formu.Lista02.options[0].text = ""
document.formu.Lista02.options[1].text = "Valor 21"
document.formu.Lista02.options[2].text = "Valor 22"
document.formu.Lista02.options[0].value = ""
document.formu.Lista02.options[1].value = "Valor 21"
document.formu.Lista02.options[2].value = "Valor 22"
}
else if (valor == 3){
document.formu.Lista02.length = 3
document.formu.Lista02.options[0].text = ""
document.formu.Lista02.options[1].text = "Valor 31"
document.formu.Lista02.options[2].text = "Valor 32"
document.formu.Lista02.options[0].value = ""
document.formu.Lista02.options[1].value = "Valor 31"
document.formu.Lista02.options[2].value = "Valor 32"
}
else{
document.formu.Lista02.length = 1
document.formu.Lista02.options[0].text = "Sin Datos."
}
}
</script>

<body>
<form name="formu" >
<select name="Lista01" onchange="FVer();">
<option value=0></option>
<option value=1>Opcion 01</option>
<option value=2>Opcion 02</option>
<option value=3>Opcion 03</option>
</select>

<select name="Lista02">
<option>Sin Datos.</option>
</select>
</form>
</body>
</html>

*****

Espero que te sirva de ayuda.

Un saludo.

Inicio Pagina

Hele
Starting Member


21 Posts
Posted - 03 May 2007 :  09:26:27  Ver perfil  Enviar e-mail
Hola!
Antes de nada muchas gracias por todo.
Te comento lo que tengo hecho hasta ahora, la lista dinamica la voy rellenando desde la base de datos;

<option selected value="<%=productoRS("a_prod_cod")%>"><%=productoRS("s_prod_nom")%></option>

y esta la he metido dentro de un formulario en el que el evento onchange llama a una funcion de javascrtipt como me muestras en tu codigo;
ahora bien, tengo que recuperar esa variable para poder hacer consultas desde asp y asi poder rellenar otras dos cajas de texto, que dependiendo de la opcion que haya escogido el usuario asi sera lo que muestre.
Espero haberme explicado, muchas gracias por todo.
Un saludo.
Helena

Inicio Pagina

Cayetano
Starting Member


14 Posts
Posted - 03 May 2007 :  18:55:57  Ver perfil  Enviar e-mail
Hola!
Según el código que te he pasado, la no es necesario pasar a la función ningún parámetro, pues la propia función comprueba la opción seleccionada en la línea
****
valor=document.formu.Lista01.options[document.formu.Lista01.selectedIndex].value
****
La mayor dificultad estaría en generar el código asp que cargue los datos en cada una de las opciones, aunque también se podría meter el código en varias variables con un bucle do
****
do while not Rs.Eof
If (rs.fields("campoGrupo")= 1 then
Contenedor01 = Contenedor01 & "document.formu.Lista02.options[1].text = 'Valor 01'"
ElseIf (rs.fields("campoGrupo")= 2 then
Contenedor02 = Contenedor02 & "document.formu.Lista02.options[1].text = 'Valor 11'"
End If

loop

****

La otra opción que se me ocurre pasa por cargar la página cada vez que se selecciona una opción de la lista 1 y controlar en cada control si tiene algún valor para volver a rellenarlos.

****
Con esta línea si tenia algún valor lo volvería a tomar.
<input type="text" name="txt" value="<%Response.Write(Request.Form("txt"))">

<select name="lista01" onChange="javascript:document.NombreFormulario.submit();">

****

Espero haberte ayudado o al menos haberte dado alguna idea.

Un Saludo.

Inicio Pagina

Hele
Starting Member


21 Posts
Posted - 04 May 2007 :  08:53:23  Ver perfil  Enviar e-mail
Hola!!!!
Antes de nada, muchas gracias por todo!
Ya solucione mi pequeño problema, te pongo aquí la solución final, no he utilizado javascript :)

Muchas gracias por todo, un saludo!

**utilizo funciones que tengo ya hechas y las incluyo al fichero ***

<%
If Request.QueryString("act") = "add" then

If request.form("cantidad") = "" then
response.Write("<script>alert('La cantidad no puede ser nula.');history.back();</script>")

end if 'si la cantidad no es nula

If Request.Form("idProd") = "-" Then
response.Write("<script>alert('Ha de elegir un producto.');history.back();</script>")
else
'fin de tratamiento de errores; insertar datos en tablas

'**********solicitudes**************

Dim arrDatos(), idx
idx = 1
ReDim arrDatos(idx)
arrDatos(idx-1) = "n_sol_cod_usuario"
arrDatos(idx) = Quote(request.Form("id_hidd"))

idx = idx + 2
ReDim Preserve arrDatos(idx)
arrDatos(idx-1) = "d_sol"
arrDatos(idx) = Quote(request.Form("fe_hidd"))

Insertar_Registro "solicitudes", arrDatos

'*********solicitudes_productos*************

Dim arraDatos2(), idx2
idx2 = 1
ReDim arrDatos2(idx2)
arrDatos2(idx2-1) = "n_sol_cod_fk"
arrDatos2(idx2) = Quote(request.Form("numAutoHidd"))

idx2 = idx2 + 2
ReDim Preserve arrDatos2(idx2)
arrDatos2(idx2-1) = "n_prod_cod_fk"
arrDatos2(idx2) = Quote(request.Form("idProd"))

idx2 = idx2 + 2
ReDim Preserve arrDatos2(idx2)
arrDatos2(idx2-1) = "n_num_uni"
arrDatos2(idx2) = Quote(request.Form("cantidad"))

Insertar_Registro "solicitudes_productos", arrDatos2



response.Redirect("pedido.asp")

end if ' /fin if idProd es nulo

end if ' fin botón enviar
%>


**dentro del body***

<form name="formulario" method="post" action="pedido.asp?act=add" >
<p>
<select name="idProd" class="txf" style="width:325px;" >
<option selected value="-" >Seleccione un producto</option>
<%
Set productoRS = Consultar_Registros("productos","a_prod_cod>0 order by a_prod_cod")
While Not productoRS.Eof
%>
<option value="<%=productoRS("a_prod_cod")%>" ><%=productoRS("s_prod_nom")%>,
<%=productoRS("s_prod_uni")%>, <%=productoRS("s_prod_marca")%>, <%=productoRS("n_prod_precio")%> </option>
<%
productoRS.MoveNext
Wend
%>
</select>
</p>
<p><b> Cantidad: </b><input value="" name="cantidad" type="text" ></p>
<!-- poner campos ocultos hasta el boton de envio-->
<!-- id usuario; fecha-->
<input name="id_hidd" type="hidden" value="<%response.Write(Session("id"))%>" size="9" readonly="">

<input name="fe_hidd" type="hidden" value="<%response.Write(date())%>" readonly="">
<input name="enviar" type="submit" id="enviar" value="A&ntilde;adir producto" class="btn" align="right">
<%
Set auxiliarRS = Consulta("SELECT max(a_sol_cod) as num FROM solicitudes")
numero= auxiliarRS("num")
numero= numero+1
%>
<input name="numAutoHidd" type="hidden" value="<%response.Write(numero)%>" readonly="">

</form><!-- /formnombre-->

Inicio Pagina

   
 Foro Bloqueado  Tema Bloqueado
Ir a:
Los Foros de ASPTutor.com Los Foros de ASPTutor.com
Ir al principio de la Página

 Imprimir Tema
 

Descargas de manuales¦ Ejemplos de código ¦ Artículos mas visitados ¦ Envía tu articulo ¦ Foros ¦
  Libro de visitas ¦Crea un enlace con ASPTutor 
 

    © 2001-Hasta hoy  Pedro Rufo Martín  contactar