Generar menu desde tabla

15/05/2006 - 12:45 por Jose | Informe spam
Buenos dias,

Mi pregunta es la siguiente.

Tengo un código que genera un menú de navegación partiendo de la información
almacenada en una tabla de la siguiente forma:

<%Do while not rs.EOF
<li><a href=<%=rs("UrlMenu")%>
target="Principal"><%=rs("TextoMenu")%></a></li>
<%rs.movenext
loop

Hasta aquí todo bien, el problema me surge con las páginas del tipo:
buscar.asp?usuario001, que llevan una parte variable.
Lo que he hecho es crear un campo en la tabla llamado varUrlMenu donde
almaceno el nombre de la variable que almacena el valor que pasaré en la
url. Los valores en la tabla me quedan de la siguiente forma:

UrlMenu: buscar.asp?usuarioTextoMenu: Buscar
varUrlMenu: CodUsuario

¿Cómo debería conformar la url?

Gracias. Un saludo.

Jose G.
 

Leer las respuestas

#1 Jose A. Fernandez
15/05/2006 - 13:46 | Informe spam
Jose...
En el campo varUrlMenu contiene el nombre de la variable y no el dato
no? bueno esto no puede recuperarlo salvo caso que ya lo tengas en
alguna coleccion (querystring, form, session, ...)
Por ejemplo:
Sabes que la variable CodUsuario esta en la una variable de session
"CodUsuario", que se recupera de esta manera
Session("CodUsuario")
bueno en tu codigo de menu

Ejemplo del contruccion del menu:

<%Do while not rs.EOF
MenuUrl=rs("UrlMenu") & .{parte de parametros}
MenuDesc = rs("TextoMenu")
%>
<li><a href=<%=MenuUrl%> target="Principal"><%=MenuDesc
%></a></li>
<%
rs.movenext
loop



la parte de {parte de parametros}
seria algo asi
MenuUrl=rs("UrlMenu") & Session(rs("varUrlMenu"))

Esto es si esta dentro de la coleccion Session o sino tendria que
colocar o buscar en la coleccion correspondiente
Request.Querystring(rs("varUrlMenu"))...

Bueno mi recomendacion es que realices una funcion de armado de URL o
algo similar
(en este caso tu UrlMenu no tendria que contener ningun nombre de
paraemtro porque se armaria algo asi...)

FUNCTION ArmarURL(MenuUrl, MenuParametros)
'Donde MenuParametros puede ser valores separados por coma
aParam = SPLIT(MenuParametros, ",")

strMenuParam = ""
FOR i = 0 TO Ubound(aParam )
strValor = ObtenerValorParametro(aParam(0))
IF TRIM(LEN(strValor )) > 0 THEN
strMenuParam = strMenuParam & aParam(0) & "=" & strValor &
"&"
END IF
NEXT

ArmarURL = MenuUrl & "?" & ArmarURL


END FUNCTION


'
' Obteniendo valor del Parametro en las colecciones
'
FUNCTION ObtenerValorParametro(Parametro)
strValor = Request.Querystring(Parametro)

IF LEN(TRIM(strValor)) = 0 THEN
strValor = Request.Form(Parametro)
EN IF

IF LEN(TRIM(strValor)) = 0 THEN
strValor = Session(Parametro)
EN IF

ObtenerValorParametro =strValor

END FUNCTION


Bueno con esto se arman los menu o es una idea simplemente espero que
la mejores.. y que te sirva..
Pero una pregunta importante el Valor: usuario001; en este caso
00001 donde estaria? en que lugar? Query, Session? de donde viene?
(te escribi las funciones rapidamente para adelantarme...pero las
escribi aqui asi que pueden tener errores)
Nuevamente espero que te sirva...

Preguntas similares