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

Controlar dinámicamente cual es el menú activo

Estas en el tema de Controlar dinámicamente cual es el menú activo en el foro de ASP Clásico en Foros del Web. Hola a todos, Antes de nada, decir que estoy aprendiendo, y que si hay alguna burrada, me la indiqueis amablemente, para así aprender un poco ...
  #1 (permalink)  
Antiguo 05/09/2008, 12:13
 
Fecha de Ingreso: octubre-2007
Mensajes: 15
Antigüedad: 16 años, 8 meses
Puntos: 0
Controlar dinámicamente cual es el menú activo

Hola a todos,

Antes de nada, decir que estoy aprendiendo, y que si hay alguna burrada, me la indiqueis amablemente, para así aprender un poco más!

En un fichero "cabecera.asp" tengo un menú estilo pestañas, al que llamo desde cualquier otra página de la web, y para saber que pestaña debe estar activo, se me ocurrió utilizar una variable de sesión, con la que almacenar el link que se ha pinchado...

Código PHP:
<div id="menu">
<
ul>
  <
li <% if Session("MenuCabeceraActivo")=1 then %>class="active"<%End If%>>
    <
a href="ComprobarMenuActivo.asp?MenuCabecera=1">Menu 1</a>
  </
li>
  <
li <% if Session("MenuCabeceraActivo")=2 then %>class="active"<%End If%>>
    <
a href="ComprobarMenuActivo.asp?MenuCabecera=2">Menu 2</a>
  </
li>
</
ul
Así cuando se carga "cabecera.asp" se comprueba dicha variable, y entonces al elemento <li> le asigno la class="active", y con dándole diferentes propiedades css, el aspecto cambia a pestaña activa... ComprobarMenuActivo.asp lo unico que hace es en función del parámetro pasado por querystring, establecer dicha variable de sesión, y redireccionar a index.asp, donde a su vez se hace un include de cabecera.asp

Además la variable de sesión me sirve para luego a la hora de realizar actualizaciones sobre la base de datos, guardar ese parámetro, supongamos que Menu 1 y 2, son 2 empresas diferentes, y en la tabla distingo para que empresa se ha hecho la actualizacion...

Hasta ahí todo bien... Mi problema está en el botón de Página Anterior, del navegador...

Si un usuario pincha en el Menu 1, y ahi entra en un formulario donde cambiar datos, y luego pincha en Menu 2, la variable de sesion estará establecida en "Menu2", pero si pulsa el botón atrás, vuelve a aparecer el formulario, y parece que el Menu 1 es el activo, pero sin embargo esa variable se ha quedado establecida a "Menu2", dando incongruencias, como que el resultado de ese formulario aparezca en el Menu2, cuando sólo pertenece al Menu1, o peor aún... que se guarden los datos destinados al Menu1 como Menu2 en la BDD...

He deshabilitado la caché por medio del siguiente código:
Código PHP:
<%
response.addheader "Pragma""no-cache"
response.addheader "cache-control""private"
response.CacheControl="no-cache"
%>
<
META HTTP-EQUIV="Cache-Control" CONTENT="no-cache"
<
META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<
META HTTP-EQUIV="Expires" CONTENT="0"
y bueno... en Internet Explorer, parece que si se arregla, pero en Firefox no...

Mi pregunta es... Hay alguna otra manera más óptima (seguro que sí pero no se me ocurre) de controlar el estado de esas pestañas, y que aparezcan como activas?? ¿Puedo hacer algo extra para estar seguro de que los datos se almacenan con el valor que deberían, a pesar del maldito boton de página atrás?

Espero vuestra ayuda! Muchas gracias!
  #2 (permalink)  
Antiguo 05/09/2008, 19:50
Avatar de JuanRAPerez
Colaborador
 
Fecha de Ingreso: octubre-2003
Mensajes: 2.393
Antigüedad: 20 años, 7 meses
Puntos: 27
Respuesta: Controlar dinámicamente cual es el menú activo

entendi pero no entendi

dejemos las sesiones y vamonos por otro lado

Código PHP:
<%
MenuActivo request("MenuCabecera")
%>
<
div id="menu">
<
ul>
  <
li <% if MenuActivo 1 then %>class="active"<%End If%>>
    <
a href="ComprobarMenuActivo.asp?MenuCabecera=1">Menu 1</a>
  </
li>
  <
li <% if MenuActivo 2 then %>class="active"<%End If%>>
    <
a href="ComprobarMenuActivo.asp?MenuCabecera=2">Menu 2</a>
  </
li>
</
ul
en tus formularios tendrias que enviar la variable oculta
menuActivo con el value="<%=MenuActivo%>"

no se se me ocurre

suerte
__________________
JuanRa Pérez
San Salvador, El Salvador
  #3 (permalink)  
Antiguo 06/09/2008, 03:04
 
Fecha de Ingreso: octubre-2007
Mensajes: 15
Antigüedad: 16 años, 8 meses
Puntos: 0
Respuesta: Controlar dinámicamente cual es el menú activo

Ok!

Yo tampoco sé si te he entendido del todo...

En los formularios perfecto, pero como pasas una variable hidden cuando pinchan en un link?? Quiero decir, cuando pulsan en Menu2 como hago para establecer la variable? siempre con querystring o q?

Si yo redirecciono a index.asp?MenuActivo=1, al hacer un include de cabecera.asp, en cabecera.asp puedo recuperar ese MenuActivo???


De todas formas, si me dices que entendiste pero no entendiste, te lo intento explicar mejor...

Gracias!
  #4 (permalink)  
Antiguo 06/09/2008, 10:58
Avatar de JuanRAPerez
Colaborador
 
Fecha de Ingreso: octubre-2003
Mensajes: 2.393
Antigüedad: 20 años, 7 meses
Puntos: 27
Respuesta: Controlar dinámicamente cual es el menú activo

te comento

yo tengo una web que necesito enviar 2 variables siempre estas son:
id_usuario
sessionid

lo que hago una ves que valido al usuario obtengo esos dos valores y los meto en una variable publica en mi pagina así:

Cita:
enlaceUsuario = "id_usuario=" & id_usuario &"&sessionid=" & sessioid &"

y cuando escribo un enlace pongo
Cita:
<a href="pagina.asp?<%=enlaceUsuario %>">enlace aquí</a>

si necesito concatenar otra variable solo haria

Cita:
<a href="pagina.asp?<%=enlaceUsuario %>&variable2=aaa">enlace aquí</a>
suerte
__________________
JuanRa Pérez
San Salvador, El Salvador
  #5 (permalink)  
Antiguo 06/09/2008, 13:16
 
Fecha de Ingreso: octubre-2007
Mensajes: 15
Antigüedad: 16 años, 8 meses
Puntos: 0
Respuesta: Controlar dinámicamente cual es el menú activo

Hola Juanra!

Muchas gracias por tu ayuda... Probaré a hacerlo como dices, a ver que tal... ya te contaré si me funciona, y sino, volveré a la carga con más preguntas... jeje!

Saludos!
  #6 (permalink)  
Antiguo 06/09/2008, 22:32
Avatar de JuanRAPerez
Colaborador
 
Fecha de Ingreso: octubre-2003
Mensajes: 2.393
Antigüedad: 20 años, 7 meses
Puntos: 27
Respuesta: Controlar dinámicamente cual es el menú activo

surte


pueba
.
__________________
JuanRa Pérez
San Salvador, El Salvador
  #7 (permalink)  
Antiguo 10/09/2008, 05:47
 
Fecha de Ingreso: octubre-2007
Mensajes: 15
Antigüedad: 16 años, 8 meses
Puntos: 0
Respuesta: Controlar dinámicamente cual es el menú activo

Hola otra vez!

Parece que así sí que me está funcionando... Seguiré evolucionando la página a ver si todo sigue igual...

Muchas gracias x la ayuda!

Saludos!
  #8 (permalink)  
Antiguo 10/09/2008, 18:55
Avatar de JuanRAPerez
Colaborador
 
Fecha de Ingreso: octubre-2003
Mensajes: 2.393
Antigüedad: 20 años, 7 meses
Puntos: 27
Respuesta: Controlar dinámicamente cual es el menú activo

oki
me alegra te funcionara

suerte
__________________
JuanRa Pérez
San Salvador, El Salvador
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 22:01.