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

listas dependientes distintas a las que hay en las FAQs

Estas en el tema de listas dependientes distintas a las que hay en las FAQs en el foro de ASP Clásico en Foros del Web. Hola amigos miren tengo este formulario: Código: <% 'Declaración de variables Dim conn Dim rs Dim productos_sql Dim categorias_sql Dim categoria Dim categorias Dim registros ...
  #1 (permalink)  
Antiguo 17/05/2005, 23:31
Avatar de El_Metallick  
Fecha de Ingreso: noviembre-2002
Ubicación: Santiago, Chile
Mensajes: 1.718
Antigüedad: 21 años, 7 meses
Puntos: 16
listas dependientes distintas a las que hay en las FAQs

Hola amigos miren tengo este formulario:
Código:
<%
'Declaración de variables
Dim conn
Dim rs
Dim productos_sql
Dim categorias_sql
Dim categoria
Dim categorias
Dim registros
Dim tamanoimg
Dim paginaactual
Dim inicio
Dim fin
Dim contador
Dim n_paginas
Dim i
Dim anterior
Dim siguiente
Server.ScriptTimeOut = 180
'Rescate de la información pasada por URL
categoria = Request.Querystring("categoria")
'Rescate de la información del formulario
registros = Request.Querystring("registros")
paginaactual = Request.Querystring("paginaactual")
orden = Request.Querystring("orden")
registros1 = clng(Request.Querystring("registros"))
'Fijación del número de registros por defecto
if registros = "" then
registros = 5
end if
'Fijación de la posición por defecto
if paginaactual = "" then
paginaactual = 1
end if
if orden = "" then
orden="categoria"
end if
'Establecemos la conección a la base de datos
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("../catalogo.mdb"))
Set rs = CreateObject("ADODB.Recordset")
'Condición de validez de la variable categoria
if categoria = "" Then
'Creación de la sentencia SQL correspondiente (cambiar el valor de tabla por el nombre de la tabla que queremos seleccionar)
productos_sql="Select categorias.nombre_categoria as nombre, productos.* From categorias Inner Join productos On categorias.id_categoria = productos.categoria Order By " & orden & ""
else
categorias = clng(Request.Querystring("categoria"))
'Creación de la sentencia SQL correspondiente (cambiar el valor de tabla por el nombre de la tabla que queremos seleccionar)
productos_sql="Select categorias.nombre_categoria as nombre, productos.* From categorias Inner Join productos On categorias.id_categoria = productos.categoria Where productos.categoria = " & categoria & " Order By " & orden & ""
end if
rs.CursorType = adOpenKeyset
rs.LockType = adLockOptimistic
'Apertura de la tabla
rs.Open productos_sql, conn
rs.pagesize = cint(registros)
rs.absolutepage = cint(paginaactual)
contador = 1
total = rs.recordcount
%>
<table border="0" width="100%" cellspacing="0" cellpadding="0" align="center">
<tr>
<td width="20%" valign="top">
<!--#include file="inc/menu.inc" -->
</td>
<td width="80%" valign="top">
<form method="get" action="editar_producto.asp" target="_blank">
<table border="1" bordercolor="#DFE8FF" width="100%" cellspacing="0" cellpadding="0" align="center">
	<tr>
<td>
<table border="0" width="100%" cellspacing="0" cellpadding="2">
	<tr>
	 <td width="2%" bgcolor="#DFE8FF" class="text" align="center">&nbsp;</td>
<td width="10%" bgcolor="#DFE8FF" class="text" align="center">CATEGORIA</td>
		<td width="10%" bgcolor="#DFE8FF" class="text" align="center">IMAGEN</td>
		<td width="22%" bgcolor="#DFE8FF" class="text" align="center">MARCA</td>
		<td width="22%" bgcolor="#DFE8FF" class="text" align="center">MODELO</td>
		<td width="24%" bgcolor="#DFE8FF" class="text" align="center">DESCRIPCION</td>
		<td width="10%" bgcolor="#DFE8FF" class="text" align="center">PRECIO</td>
	 </tr>
	<%
	If Not rs.Eof Then
	Do While Not rs.eof And contador <= cint(registros)
	%>
	 <tr>
		<td width="2%" bgcolor="#EFEFEF"><input type="radio" name="id" value="<% = rs("id_producto") %>"></td>
		<td width="10%" bgcolor="#EFEFEF"><% = rs("nombre") %></td>
		<td width="10%" bgcolor="#EFEFEF" align="center"><img src="../imagenes/<% = rs("imagen") %>" alt="<% = rs("imagen") %>" border="0" width="50" height="50"></td>
		<td width="22%" bgcolor="#EFEFEF"><% = rs("marca") %></td>
		<td width="22%" bgcolor="#EFEFEF"><% = rs("modelo") %></td>
		<td width="24%" bgcolor="#EFEFEF"><% = rs("descripcion") %></td>
		<td width="10%" bgcolor="#EFEFEF"align="right">$<% = rs("precio") %></td>
	 </tr>
	 <%
	rs.movenext
	 contador=contador+1
	 Loop
	else 
	%>
	<tr>
		<td width="100%" bgcolor="#EFEFEF" colspan="7" class="text" align="center">No hay productos en esta categoría</td>
	 </tr>
	<% end if %>
</table>
</td>
</tr>
</table>
<p align="center"><input type="submit" name="b1" value="Modificar" style="<% = BotonEstilo %>"></p>
</form>
<br><br><div align="center" class="text">Página: </div>
<table align="center">
	<tr>
	<%n_paginas = 0
	'Condición para que aparezca "<<" para indicar un vínculo a la página anterior
	if cint(paginaactual) <> 1 then
	'Fijación del valor de la variable anterior
	anterior = cint(paginaactual) - 1
	response.write "<td align=""center""><a href=""form_editar_producto.asp?registros=" & registros & "&orden=" & orden & "&paginaactual=" & anterior & """>"&"&lt;&lt;"&"</a></td>"
	n_paginas = n_paginas + 1
	end if
	'Escritura del número total de páginas
	for i = 1 to rs.pagecount
	n_paginas = n_paginas + 1
	'Condición para que el número de la página actual no salga como vínculo
	if cint(i) = cint(paginaactual) then
	response.write "<td align=""center"" class=""text"">" & i & "</td>"
	else
	response.write "<td align=""center""><a href=""form_editar_producto.asp?registros=" & registros & "&orden=" & orden & "&paginaactual=" & i & """>" & i & "</a></td>"
	end if 
	next
	'Condición para que aparezca ">>" para indicar un vínculo a la página siguiente
	if cint(paginaactual) <> rs.pagecount then
	'Fijación del valor de la variable siguiente
	siguiente = cint(paginaactual) + 1
	response.write "<td align=""center""><a href=""form_editar_producto.asp?registros=" & registros & "&orden=" & orden & "&paginaactual=" & siguiente & """>"&"&gt;&gt;"&"</a></td>"
	end if
	%>
	</tr>
</table>
<%
'Creación de la sentencia SQL correspondiente (cambiar el valor de tabla por el nombre de la tabla que queremos seleccionar)
categorias_sql="Select * From categorias"
'Ejecución de la orden
Set rs = Conn.Execute(categorias_sql) 
%>
<form method="get" action="form_editar_producto.asp">
<p align="center"><select name="categoria" style="<% = SelectEstilo %>">
	<% Do While Not rs.Eof %>
	<option value="<% = rs("id_categoria") %>" <% if categorias = rs("id_categoria") Then %>selected<% end if %>>Ver <% = rs("nombre_categoria") %></option>
	<%
rs.MoveNext
	Loop 
%>
<option value="" <% if categoria = "" Then %>selected<% end if %>>Ver Todas las Categorías</option>
</select>&nbsp;&nbsp;
<select size="1" name="registros" style="<% = SelectEstilo %>">
	<option value="5" <% if registros1 = 5 Or registros1 = "" Then %>selected<% end if %>>5 Productos por página</option>
	<option value="10" <% if registros1 = 10 Then %>selected<% end if %>>10 Productos por página</option>
<option value="20" <% if registros1 = 20 Then %>selected<% end if %>>20 Productos por página</option>
	<option value="30" <% if registros1 = 30 Then %>selected<% end if %>>30 Productos por página</option>
	<option value="40" <% if registros1 = 40 Then %>selected<% end if %>>40 Productos por página</option>
	<option value="<% = total %>" <% if registros1 = total Then %>selected<% end if %>>Todos los Productos</option>
</select>&nbsp;&nbsp;
<select size="1" name="orden" style="<% = SelectEstilo %>">
	<% If categoria = "" Then %><option value="categoria" <% if orden = "categoria" Or orden = "" Then %>selected<% end if %>>Ordenar por Categoría</option><% end if %>
	<option value="marca" <% if orden = "marca" Then %>selected<% end if %>>Ordenar por Marca</option>
	<option value="modelo" <% if orden = "modelo" Then %>selected<% end if %>>Ordenar por Modelo</option>
	<option value="precio" <% if orden = "precio" Then %>selected<% end if %>>Ordenar por Precio</option>
</select>&nbsp;&nbsp;<input type="submit" name="b2" value="Mostrar" style="<% = BotonEstilo %>"></p>
</form>
Mi idea es que cuando en el primer select se eliga todos los productos en el tercer select aparezca oredenar por categoria, y que en cualquier otro caso no aparezca.... todos los que he visto hay que definir los campos que quiero en cualquier caso de eleccion en el primer select... y como mi primer select es relativo no puedo saber cuantos casos son... bueno espero haver sido claro.... eso pues saludos y gracias de antemano...
__________________
Haz la guerra en la cama y el amor donde se te de la gana...
El tiempo es el mejor maestro, lo único malo es que te mata...¡¡Aprovecha tu tiempo!!

Última edición por El_Metallick; 18/05/2005 a las 04:36
  #2 (permalink)  
Antiguo 17/05/2005, 23:51
Avatar de trasgukabi  
Fecha de Ingreso: septiembre-2004
Mensajes: 2.749
Antigüedad: 19 años, 9 meses
Puntos: 18
edita el post y pon todo el código desde que recoges el request.form hasta donde has puesto, porque hay unas variables que no veo cómo las recoges.
  #3 (permalink)  
Antiguo 18/05/2005, 10:33
Avatar de El_Metallick  
Fecha de Ingreso: noviembre-2002
Ubicación: Santiago, Chile
Mensajes: 1.718
Antigüedad: 21 años, 7 meses
Puntos: 16
ya puse todo el código tragukabi
__________________
Haz la guerra en la cama y el amor donde se te de la gana...
El tiempo es el mejor maestro, lo único malo es que te mata...¡¡Aprovecha tu tiempo!!
  #4 (permalink)  
Antiguo 19/05/2005, 14:38
Avatar de El_Metallick  
Fecha de Ingreso: noviembre-2002
Ubicación: Santiago, Chile
Mensajes: 1.718
Antigüedad: 21 años, 7 meses
Puntos: 16
alguna sugerencia???
__________________
Haz la guerra en la cama y el amor donde se te de la gana...
El tiempo es el mejor maestro, lo único malo es que te mata...¡¡Aprovecha tu tiempo!!
  #5 (permalink)  
Antiguo 19/05/2005, 14:57
Avatar de trasgukabi  
Fecha de Ingreso: septiembre-2004
Mensajes: 2.749
Antigüedad: 19 años, 9 meses
Puntos: 18
Código:
<select size="1" name="orden" style="<% = SelectEstilo %>">
	<% If categoria = "" Then %><option value="categoria" selected>Ordenar por Categoría</option><% end if %>
	<option value="marca" <% if orden = "marca" and categoria<>"" Then %>selected<% end if %>>Ordenar por Marca</option>
	<option value="modelo" <% if orden = "modelo" and categoria<>"" Then %>selected<% end if %>>Ordenar por Modelo</option>
	<option value="precio" <% if orden = "precio" and categoria<>"" Then %>selected<% end if %>>Ordenar por Precio</option>
</select>
el problema que tenías era que además de generar el selected para "ordenar por categoría", más tarde te generaba también el orden que estaba seleccionado en la pantalla anterior
  #6 (permalink)  
Antiguo 19/05/2005, 20:09
Avatar de El_Metallick  
Fecha de Ingreso: noviembre-2002
Ubicación: Santiago, Chile
Mensajes: 1.718
Antigüedad: 21 años, 7 meses
Puntos: 16
trasgukabi... me entendiste mal la pregunta.... lo que quiero es que al seleccionar todas las categorias en el primer select, en el tercero aparezca la opcion ordenr por categoria, de lo contrario que no aparezca... claro como tu dices funcion cuando el formulario es enviado rescatado y procesado por la pagina.... si y el mio tambien lo hacia, pero lo que quiero es algo como lo tipico que se ve que cuando seleccionas un pais aparecen las ciudades de este... eso, sin tener que cargar otra página... bueno espero que ahora me entiendas mejor....

PD: se que esto es javascript pero poste aca en vista de que mi primer select no tiene un numero fijo de opciones devido a que es el despliegue de una base de datos y eso hace complicada la cosa... porque vi en las FAQs de Javascript pero lo que ahi sale no me sirve porque previamente tengo que asignarle valores a cada opcion... bueno eso pues gracias y saludos
__________________
Haz la guerra en la cama y el amor donde se te de la gana...
El tiempo es el mejor maestro, lo único malo es que te mata...¡¡Aprovecha tu tiempo!!
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 01:52.