Foros del Web » Programando para Internet » PHP »

como marcar el enlace de menu activo

Estas en el tema de como marcar el enlace de menu activo en el foro de PHP en Foros del Web. Buenos días estoy intentando marcar en rojo el enlace de menú activo en mi web . encontré esta función pero no llega a ejecutar la ...
  #1 (permalink)  
Antiguo 18/03/2011, 06:11
 
Fecha de Ingreso: abril-2002
Mensajes: 68
Antigüedad: 22 años
Puntos: 0
como marcar el enlace de menu activo

Buenos días estoy intentando marcar en rojo el enlace de menú activo en mi web .
encontré esta función pero no llega a ejecutar la función. me podéis ayudar.

Gracias

Código PHP:
<?php
function Menu($sitio) {

$url 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'];

if(
ereg($sitio,$url)) {echo 'id="current"'; }


?>
  <?php

//Creamos la sentencia SQL y la ejecutamos para que salga el valor en la base de datos 
$sSQL="Select idcontenido,titulo,idtipocontenido,idestado From contenido WHERE idestado=2 AND idtipocontenido=2 ";
$result=mysql_query($sSQL);

//Mostramos los registros del menu
while ($row=mysql_fetch_array($result)){
echo 
"<li Menu('detalle.php')> <a href=detalle.php?var=".$row["idcontenido"].">".$row["titulo"]."</a></li>";}

?>
__________________
Lordztein
  #2 (permalink)  
Antiguo 18/03/2011, 06:17
Avatar de Kamae  
Fecha de Ingreso: abril-2008
Ubicación: Barcelona (Catalunya)
Mensajes: 307
Antigüedad: 16 años
Puntos: 13
Respuesta: como marcar el enlace de menu activo

Buenas

Prueba a usar la función así:

Código PHP:
function Menu($sitio) {

$url 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'];

if(
ereg($sitio,$url)) {return 'id="current"'; } // Si coincide, retorna la cadena
return ""// Si llega aquí, no retorna nada


Y luego al llamarla mejor sácala de las comillas dobles del echo, no sea que esté pillándolo como string en vez de interpretarlo como php:

Código PHP:
//Mostramos los registros del menu
while ($row=mysql_fetch_array($result)){
echo 
"<li ".Menu('detalle.php')."> <a href=detalle.php?var=".$row["idcontenido"].">".$row["titulo"]."</a></li>";} 
Saludos
  #3 (permalink)  
Antiguo 18/03/2011, 06:45
 
Fecha de Ingreso: abril-2002
Mensajes: 68
Antigüedad: 22 años
Puntos: 0
Respuesta: como marcar el enlace de menu activo

Genial !! me funciona , gracias

solo una consulta más

me marca todos los enlaces ya que todos van a la misma página detalle.php
pero lo unico que cambia es mi variable var.

ejemplo:

<a href=detalle.php?var=".$row["idcontenido"].">

como puedo hacer para cambiar la comparación de la función??

intento hacerlo asi pero me tira error:
Código PHP:
Ver original
  1. <?php
  2. function Menu($sitio) {
  3.  
  4. $url = 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']'?'$_GET[var];
  5.  
  6. if(ereg($sitio,$url)) {return 'id="current"'; } // Si coincide, retorna la cadena
  7. return ""; // Si llega aquí, no retorna nada
  8.  
  9. }  
  10. ?>
__________________
Lordztein
  #4 (permalink)  
Antiguo 18/03/2011, 06:58
 
Fecha de Ingreso: abril-2002
Mensajes: 68
Antigüedad: 22 años
Puntos: 0
Respuesta: como marcar el enlace de menu activo

encontré esta función pero necesito poner un interrogante ? entre

.$_SERVER['PHP_SELF'] y .$_SERVER['QUERY_STRING']

Código PHP:
Ver original
  1. <?php
  2. echo 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'].$_SERVER['QUERY_STRING'];
  3. ?>
__________________
Lordztein
  #5 (permalink)  
Antiguo 18/03/2011, 07:35
Avatar de Kamae  
Fecha de Ingreso: abril-2008
Ubicación: Barcelona (Catalunya)
Mensajes: 307
Antigüedad: 16 años
Puntos: 13
Respuesta: como marcar el enlace de menu activo

Buenas de nuevo

A ver, cuando usas la variable echo, lo que escribes a continuación va entre comillas siempre que sea texto como tal, lo que sean variables y funciones va fuera de las comillas, y para juntar unas con otras, siempre se usa el punto (.)

Código PHP:
echo "Hola";
// Devuelve "Hola"

echo "Hola, eres".$nombre;
// Devuelve "Hola, eres Juan"

echo $nombre.", son las ".$hora." y aun estás durmiendo";
// Devuelve "Juan, son las 14:32 y aun estás durmiendo" 
Así pues, el error en tu código está en la concatenación, te has dejado los puntitos.

Código PHP:
<?php
function Menu($sitio) {
 
$url 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'].'?var='.$_GET['var'];
// Esto por ejemplo sería http://www.tuweb.com/detalle.php?var=ciudad
 
if(ereg($sitio,$url)) {return 'id="current"'; } // Si coincide, retorna la cadena
return ""// Si llega aquí, no retorna nada
 
}  
?>
Saludos
  #6 (permalink)  
Antiguo 21/03/2011, 03:08
 
Fecha de Ingreso: abril-2002
Mensajes: 68
Antigüedad: 22 años
Puntos: 0
Respuesta: como marcar el enlace de menu activo

Muchas gracias Kamae, me ha funcionado perfectamente y además me ayudaste a solucionar alguna duda que tenia con los .

gracias
__________________
Lordztein

Etiquetas: enlace
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 03:53.