Ver Mensaje Individual
  #1 (permalink)  
Antiguo 17/05/2005, 23:31
Avatar de El_Metallick
El_Metallick
 
Fecha de Ingreso: noviembre-2002
Ubicación: Santiago, Chile
Mensajes: 1.718
Antigüedad: 22 años, 6 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