Foros del Web » Programando para Internet » PHP »

Problema menu horizontal css

Estas en el tema de Problema menu horizontal css en el foro de PHP en Foros del Web. Hola a todos. He creado un menu horizontal con css. Para que el menu se dé cuenta de cuál de las secciones es la que ...
  #1 (permalink)  
Antiguo 03/03/2008, 12:05
 
Fecha de Ingreso: febrero-2008
Mensajes: 74
Antigüedad: 16 años, 2 meses
Puntos: 0
Pregunta Problema menu horizontal css

Hola a todos.
He creado un menu horizontal con css. Para que el menu se dé cuenta de cuál de las secciones es la que está seleccionada y ésta se muestre diferente sé que es poniendole un id (por ejemplo id="actual") definiendo un estilo diferente para ello que ya he hecho y hasta ahi todo correcto.
El problema es que no sé cómo aplicarlo de forma que no tenga que repetir el codigo del menu entero cambiando donde sea ese id. Pretendo que se de cuenta de alguna otra forma ya que si no seria como si iciese 7 menus distintos.
¿Como podria implementar eso?
Un saludo, muchas gracias.
  #2 (permalink)  
Antiguo 03/03/2008, 12:37
Avatar de Raulmmmm  
Fecha de Ingreso: marzo-2007
Ubicación: En otro lugar que tú
Mensajes: 1.549
Antigüedad: 17 años
Puntos: 36
Re: Problema menu horizontal css

Es que eso me parece que no se puede hacer con CSS, se hace con PHP.

Si sigues interesado puedo poner algo de código.
  #3 (permalink)  
Antiguo 03/03/2008, 12:50
 
Fecha de Ingreso: febrero-2008
Mensajes: 74
Antigüedad: 16 años, 2 meses
Puntos: 0
Re: Problema menu horizontal css

No estaba muy seguro de si se podia hacer con css.
Si estaria muy interesado si eres tan amable ya que le he estado dando vueltas y no se como hacerlo.
Te dejo el codigo:
Código:
<div id="menuh" align="center">
  <ul>
	<li><a href="index.php?esc=laescuela&intro=introduccion_index" title="Introduccion">Introducci&oacute;n</a></li>
	<li><a href="index.php?esc=laescuela&quien=quienessomos" title="Quienes somos">Qui&eacute;nes somos</a></li>
	<li><a href="index.php?esc=laescuela&hist=historia" title="Historia">Historia</a></li>
	<li><a href="index.php?esc=laescuela&obj=objetivos" title="Objetivos">Objetivos</a></li>
	<li><a href="index.php?esc=laescuela&ubi=ubicacion" id="actual" title="Instalaciones">Instalaciones</a></li>
	<li><a href="index.php?esc=laescuela&proy=proyectocurricular_index" title="Proyecto curricular">Proyecto curricular</a></li>	
	<li><a href="index.php?esc=laescuela&conta=contacto" title="Contacto">Contacto</a></li>
  </ul>
</div>
En este caso tenia asignado el id actual a instalaciones.
A ver como se podria hacer. Muchas gracias.
  #4 (permalink)  
Antiguo 03/03/2008, 13:06
Avatar de Raulmmmm  
Fecha de Ingreso: marzo-2007
Ubicación: En otro lugar que tú
Mensajes: 1.549
Antigüedad: 17 años
Puntos: 36
Re: Problema menu horizontal css

Sería así para todos los enlaces. Algo más de código, pero con la ventaja de que no lo tienes que poner tú.
Código HTML:
<div id="menuh" align="center">
  <ul>
	<li><a href="index.php?esc=laescuela&intro=introduccion_index" title="Introduccion">Introducci&oacute;n</a></li>
	<li><a href="index.php?esc=laescuela&quien=quienessomos" title="Quienes somos">Qui&eacute;nes somos</a></li>
	<li><a href="index.php?esc=laescuela&hist=historia" title="Historia">Historia</a></li>
	<li><a href="index.php?esc=laescuela&obj=objetivos" title="Objetivos">Objetivos</a></li>
	<li><a href="index.php?esc=laescuela&ubi=ubicacion"<?php
if($_SERVER[PHP_SELF] == 'index.php?esc=laescuela&ubi=ubicacion'){
echo 'id="actual"';
}
?> title="Instalaciones">Instalaciones</a></li>
	<li><a href="index.php?esc=laescuela&proy=proyectocurricular_index" title="Proyecto curricular">Proyecto curricular</a></li>	
	<li><a href="index.php?esc=laescuela&conta=contacto" title="Contacto">Contacto</a></li>
  </ul>
</div> 
  #5 (permalink)  
Antiguo 03/03/2008, 13:34
 
Fecha de Ingreso: febrero-2008
Mensajes: 74
Antigüedad: 16 años, 2 meses
Puntos: 0
Re: Problema menu horizontal css

No habia caido en usar PHP_SELF. Gracias, pero el problema persiste ya que con PHP_SELF me muestra la ruta empleada hasta .../.../index.php y no se da cuenta de las distintas variables GET que son las que distinguen la accion del menu:

index.php?esc=laescuela&intro=introduccion_index

La parte subrayada
¿Se podria especificar estas variables tb?
  #6 (permalink)  
Antiguo 03/03/2008, 13:41
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Re: Problema menu horizontal css

Movido al foro de PHP desde Css.

Saludos,
  #7 (permalink)  
Antiguo 03/03/2008, 13:53
 
Fecha de Ingreso: febrero-2008
Mensajes: 74
Antigüedad: 16 años, 2 meses
Puntos: 0
Re: Problema menu horizontal css

Ok, era lo mejor que la cosa se complicaba.
A ver si alguien por aqui me ayuda a encontrar la solucion.

¿Existe alguna alguna forma o alguna funcion como PHP_SELF para obtener la ruta pero que se de cuenta de las variables que se pasan por la URL?
Un saludo por aqui a todos. Gracias
  #8 (permalink)  
Antiguo 03/03/2008, 13:53
Avatar de Raulmmmm  
Fecha de Ingreso: marzo-2007
Ubicación: En otro lugar que tú
Mensajes: 1.549
Antigüedad: 17 años
Puntos: 36
Re: Problema menu horizontal css

Prueba en vez de PHP_SELF, REQUEST_URI.
  #9 (permalink)  
Antiguo 03/03/2008, 14:19
 
Fecha de Ingreso: febrero-2008
Mensajes: 74
Antigüedad: 16 años, 2 meses
Puntos: 0
Re: Problema menu horizontal css

Nos vamos acercando porque con $_SERVER[PHP_SELF] me muestra: /appserv/emmdsitio/index.php

con $_SERVER[REQUEST_URI] me muestra: esc=laescuela&intro=introduccion_index

queria que se me mostrase: index.php?esc=laescuela&intro=introduccion_index

De todas formas he probado a poner directamente
Cita:
<li><a href="index.php?esc=laescuela&intro=introduccion_i ndex"
<?php
if($_SERVER[REQUEST_URI] == 'esc=laescuela&intro=introduccion_index'){
echo 'id="actual"';
}
?>
title="Introduccion">Introducci&oacute;n</a></li>
Teoricamente deberia asignarle el id de actual ya que lo q sale del REQUEST_URI es lo mismo que con lo que lo he comparado, pero no lo hace. Esto me hace pensar ¿Puede ser problema del echo del id? No se me ocurre que puede ser.
Gracias
  #10 (permalink)  
Antiguo 03/03/2008, 16:18
Avatar de Raulmmmm  
Fecha de Ingreso: marzo-2007
Ubicación: En otro lugar que tú
Mensajes: 1.549
Antigüedad: 17 años
Puntos: 36
Re: Problema menu horizontal css

No sé, pero yo he probado el REQUEST_URI y me sale la dirección entera y, además, funciona... de todas formas sería así:
Código PHP:
<li><a href="index.php?esc=laescuela&intro=introduccion_index"
<?php
$ruta 
$_SERVER['PHP_SELF'].'?'.$_SERVER[REQUEST_URI];
if(
$ruta == '/appserv/emmdsitio/index.php?esc=laescuela&intro=introduccion_index'){
echo 
'id="actual"';
}
?>

title="Introduccion">Introducci&oacute;n</a></li>
Pero de todas formas haz un echo $_SERVER[REQUEST_URI]; a ver que te muestra, porque a mí me da la ruta completa... y quizás sea esa la causa del error.

PD: También puede ser porque tienes un espacio en el href del a, en vez de "index" has puesto "i ndex".
  #11 (permalink)  
Antiguo 03/03/2008, 17:41
 
Fecha de Ingreso: febrero-2008
Mensajes: 74
Antigüedad: 16 años, 2 meses
Puntos: 0
De acuerdo Re: Problema menu horizontal css

Sí señor. Muchisimas gracias. Por fin resuelto.
Me habia hecho un lio al comprobar los "echo" de lo que hacia cada $_SERVER[REQUEST_URI].

Muchas gracias de verdad.
Dejo el codigo completo ya que puede ser util para muchos:

Cita:
<div id="menuh" align="center">
<ul>

<li><a href="index.php?esc=laescuela&intro=introduccion_i ndex"
<?php
$ruta = $_SERVER[REQUEST_URI];
if($ruta == '/appserv/emmdsitio/index.php?esc=laescuela&intro=introduccion_index') {
echo 'id="actual"';
}
?>

title="Introduccion">Introducci&oacute;n</a></li>
<li><a href="index.php?esc=laescuela&quien=quienessomos" <?php
$ruta = $_SERVER[REQUEST_URI];
if($ruta == '/appserv/emmdsitio/index.php?esc=laescuela&quien=quienessomos'){
echo 'id="actual"';
}
?>
title="Quienes somos">Qui&eacute;nes somos</a></li>
<li><a href="index.php?esc=laescuela&hist=historia" <?php
$ruta = $_SERVER[REQUEST_URI];
if($ruta == '/appserv/emmdsitio/index.php?esc=laescuela&hist=historia'){
echo 'id="actual"';
}
?>
title="Historia">Historia</a></li>
<li><a href="index.php?esc=laescuela&obj=objetivos" <?php
$ruta = $_SERVER[REQUEST_URI];
if($ruta == '/appserv/emmdsitio/index.php?esc=laescuela&obj=objetivos'){
echo 'id="actual"';
}
?>
title="Objetivos">Objetivos</a></li>
<li><a href="index.php?esc=laescuela&ubi=ubicacion" <?php
$ruta = $_SERVER[REQUEST_URI];
if($ruta == '/appserv/emmdsitio/index.php?esc=laescuela&ubi=ubicacion'){
echo 'id="actual"';
}
?>
title="Instalaciones">Instalaciones</a></li>
<li><a href="index.php?esc=laescuela&proy=proyectocurricu lar_index" <?php
$ruta = $_SERVER[REQUEST_URI];
if($ruta == '/appserv/emmdsitio/index.php?esc=laescuela&proy=proyectocurricular_in dex'){
echo 'id="actual"';
}
?>
title="Proyecto curricular">Proyecto curricular</a></li>
<li><a href="index.php?esc=laescuela&conta=contacto" <?php
$ruta = $_SERVER[REQUEST_URI];
if($ruta == '/appserv/emmdsitio/index.php?esc=laescuela&conta=contacto'){
echo 'id="actual"';
}
?>
title="Contacto">Contacto</a></li>
</ul>
</div>
Un saludo

Última edición por bysv; 03/03/2008 a las 17:47
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 00:57.