Duda con <li class="active">

R

RemPro

Hola Betas!, estoy con un problemilla en un menú, el código que tengo es este:
Insertar CODE, HTML o PHP:
<li class="active"><a href="index.php">INICIO</a></li>
<li class="" ><a href="articulos.php">Artículos</a></li>


se que para que me funciones tengo que poner el "active" en cada sección, en fin.. el problema es que el código del menú es el mismo para todas las páginas, ya que está mediante la función <?php include("menu.php"); ?>

No se que hacer para que funcione :/
 

Josepdal

Gamma
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
26 Dic 2013
Mensajes
164
Tengo el menú de la web mediante la función "include", hago clic en INICIO y queda esta opción seleccionada, pero NO sucede lo mismo cuando hago clic en Artículos :(

Supongo que es porque como el include es igual en todas las páginas, saldrá lo mismo en todas, es decir:

Página de inicio:
Insertar CODE, HTML o PHP:
<li class="active"><a href="index.php">INICIO</a></li>
<li class="" ><a href="articulos.php">Artículos</a></li>

Artículos:
Insertar CODE, HTML o PHP:
<li class="active"><a href="index.php">INICIO</a></li>
<li class="" ><a href="articulos.php">Artículos</a></li>

Si quieres que salga diferente, supongo que tendrás que prescindir del include, y montar el código en cada página. Así:

Página de inicio:
Insertar CODE, HTML o PHP:
<li class="active"><a href="index.php">INICIO</a></li>
<li class="" ><a href="articulos.php">Artículos</a></li>

Artículos:
Insertar CODE, HTML o PHP:
<li class=""><a href="index.php">INICIO</a></li>
<li class="active" ><a href="articulos.php">Artículos</a></li>


Aunque supongo que habrá formas de editarlo con php, es un lenguaje que no tengo ni idea, pero por lo poco que he leido, sería poner una condición que haga que según en la página donde esté que aparezca la clase css para editar el diseño.

Corrígeme si me equivoco, o si he derrapado porque no tiene nada que ver y no te entendí, un saludo!
 

juanec27

Gamma
Programador
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
19 Mar 2011
Mensajes
207
Trata en todo lo posible evitar pedir que te solucionen las cosas... las respuestas a tus preguntas estan en hacer mas preguntas... ok quieres que la clase css se imprima dependiendo de que seccion estas visitando... entonces ¿como validarias en que seccion o archivo php estas viendo?... ya te han dado una respuesta...
 
Última edición:

bertocoder

Beta
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
17 Feb 2014
Mensajes
41
Hola yo lo haria con jquery, para dejar el include del menu simplificado sin if , el codigo es muy simple:

<script type="text/javascript">
jQuery(document).ready(function($) {

//quitar el current actual
$("#menu .current").removeClass('current');

//poner la class current al elemento del menu que queremos s
$("a[href='url_a_activar.html']").addClass('current');

});

Necesitaras incluir jQuery... ;)

Salds
 

Jirson Tavera

Beta
Programador
Verificado por Whatsapp
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
1 Nov 2012
Mensajes
105
Utiliza Jquery y ya esta una fácil y rápida solución has lo que dice bertocoder
 

Koletta

Dseda
Verificación en dos pasos activada
Verificado por Whatsapp
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
10 Dic 2012
Mensajes
1.128
Hola Betas!, estoy con un problemilla en un menú, el código que tengo es este:
Insertar CODE, HTML o PHP:
<li class="active"><a href="http://forobeta.com/">INICIO</a></li>
<li class="" ><a href="articulos.php">Artículos</a></li>


se que para que me funciones tengo que poner el "active" en cada sección, en fin.. el problema es que el código del menú es el mismo para todas las páginas, ya que está mediante la función <?php include("menu.php"); ?>

No se que hacer para que funcione :/


Tal vez llego un poco tarde pero te comento.
Yo para marcar activa la opción del menú recupero la url mediante una función y la comparo con la correspondiente opción del menú. Sería algo así:

PHP:
<li class="<?php if (verURL() == 'index.php'){ echo 'active'; } ?>"><a href="index.php">INICIO</a></li>
<li class="<?php if (verURL() == 'articulos.php'){ echo 'active'; } ?>" ><a href="articulos.php">Artículos</a></li>
<li class="<?php if (verURL() == 'analisis.php'){ echo 'active'; } ?>" ><a href="analisis.php">Artículos</a></li>
<li class="<?php if (verURL() == 'contacto.php'){ echo 'active'; } ?>" ><a href="contacto.php">Artículos</a></li>
<li class="<?php if (verURL() == 'ayuda.php'){ echo 'active'; } ?>" ><a href="ayuda.php">Artículos</a></li>

PHP:
function verURL(){
     return $_SERVER['PHP_SELF'];
}

La función no es estrictamente necesaria pero queda más claro y es más correcto. Si modificas tu archivos "menu.php" con esta funcionalidad, la sección donde estés se marcará automáticamente al cambiar de url.

Espero que te sirva. Un saludo.
 
Arriba