Foros del Web » Programando para Internet » Javascript »

Menu con submenu desplegable con cookies y htaccess

Estas en el tema de Menu con submenu desplegable con cookies y htaccess en el foro de Javascript en Foros del Web. buenas, queria realizar una consulta... estoy diseñando una pagina web y estoy implementando un menu con submenu desplegable en php, he implementado uno que utiliza ...
  #1 (permalink)  
Antiguo 28/04/2010, 05:31
 
Fecha de Ingreso: marzo-2010
Mensajes: 34
Antigüedad: 14 años
Puntos: 0
Menu con submenu desplegable con cookies y htaccess

buenas, queria realizar una consulta... estoy diseñando una pagina web y estoy implementando un menu con submenu desplegable en php, he implementado uno que utiliza las cookies para que mantenga su valor al cambiar de pagina... es decir, que se mantenga deslegado...
Realice pruebas en localhost... y me funciona a la perfeccion, ya que al seleccionar alguna opcion de el SUBMENU, y mostrar el contenido de ese submenu en una paginadiferente me mantiene el menu desplegado.

Mi problema es que,cuando lo subi al servidor.... y lo configure...me encontre con un error... Y TODO ME LLEVA A CREER QUE ES PROBLEMA DE HTACCESS que me guarda mal las cookies... el htaccess modifica la URL, para que se muestre como si fueran Directorios/Subdirectorios

Este es el codigo del htaccess:

Código:
RewriteRule ^(.*)/(.*)      Submenu.php?cat=$1&subcat=$2
Este es el archivo JS que utiliza las COOKIES:

Código:
function switchit(list,img,stylesheetpath)
{
	var listElementStyle=document.getElementById(list).style;
    if (listElementStyle.display=="none")
	{
		listElementStyle.display="block";
		SetCookie(list,"true");
	}
	else
	{                  
		listElementStyle.display="none";
		SetCookie(list,"false");
	}
}
 
function SetCookie(name, value, expires, path, domain) 
{ 
	document.cookie = name + "=" + escape(value) + 
	((expires == null) ? "" : "; expires=" + expires.toGMTString()) +
	((path == null)    ? "" : "; path=" + path) +
	((domain == null)  ? "" : "; domain=" + domain);
}
 
function GetCookie(name)
{ 
	var cname = name + "=";               
	var dc = document.cookie;             
	if (dc.length> 0) 
	{ 
		begin = dc.indexOf(cname);       
    	if (begin != -1) 
    	{
			begin += cname.length;       
      		end = dc.indexOf(";", begin);
      		if (end == -1) end = dc.length;
      		return unescape(dc.substring(begin, end));
    	} 
  	}
	return null;
}
 
function DelCookie (name,path,domain) 
{ 
	if (getCookie(name)) 
  	{ 
		document.cookie = name + "=" +
    	((path == null) ? "" : "; path=" + path) +
    	((domain == null) ? "" : "; domain=" + domain) +
    	"; expires=Thu, 01-Jan-70 00:00:01 GMT";
  	}
}
... el problema es que me mantiene guardado, NO EL ULTIMO VALOR al que yo accedi, sino el PENULTIMO VALOR.... por ejemplo, tengo un menu con:

CANALES (Categoria)
--->>UNO(Subacategoria)
--->>DOS
--->>TRES
PROGRAMAS(Categoria
--->>COMEDIA(Subcategoria)
--->>ACCION

etc.... entonces,
al principio esta todo contraido asi:

CANALES
PROGRAMAS

hago click en CANALES y me despliega CANALES y me queda asi:

CANALES
--->>UNO
--->>DOS
--->>TRES
PROGRAMAS

Luego hago click en DOS, y me lleva a la pagina que direcciona DOS...
Hasta ahi vamos bien.... pero, luego yo cierro CANALES y abro PROGRAMAS... y hago click en COMEDIA por ejemplo, al recargarse la pagina me muestra esto:

CANALES
--->>UNO
--->>DOS
--->>TRES
PROGRAMAS

Entonces, NO ESTA FUNCIONANDO BIEN EL MENU, por que yo estaba en la otra categoria.... y sé que el problema esta en la COOKIE... por que si vuelvo a hacer click por seunda vez 'consecutiva' en PROGRAMAS ---> Comedia, me muestra comedia y ahora me muestra bien el submenu:

CANALES
PROGRAMAS
--->>COMEDIA
--->>ACCION

Espero que haberme explicado bien y que hayan podido entender cual es mi problema... si pueden ayudarme, se los agradecere!!!!!!!!!!!

Etiquetas: cookies, htaccess, submenu
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 11:54.