Dúvida com <li class="active">

  • Autor Autor RemPro
  • Data de início Data de início
Tradução em andamento: em alguns minutos este tópico estará em português. Por enquanto, o conteúdo está no original em espanhol. Ver original
R

RemPro

Hola Betas!, estoy con un problemilla en un menú, el código que tengo es este:
Inserir CODE, HTML ou 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 :/
 
Foi útil? Participe da conversa

Com sua conta grátis você pode responder, mandar mensagem privada ao autor e comprar com Saldo retido: o pagamento é liberado quando você recebe o combinado.

Leva 30 segundos · você volta a este tópico ao terminar
Puedes decir qué es lo que falla? No me he enterado... :s
 
Puedes decir qué es lo que falla? No me he enterado... :s

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 🙁
 
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:
Inserir CODE, HTML ou PHP:
<li class="active"><a href="index.php">INICIO</a></li>
<li class="" ><a href="articulos.php">Artículos</a></li>

Artículos:
Inserir CODE, HTML ou 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:
Inserir CODE, HTML ou PHP:
<li class="active"><a href="index.php">INICIO</a></li>
<li class="" ><a href="articulos.php">Artículos</a></li>

Artículos:
Inserir CODE, HTML ou 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!
 
Usa la variable PHP_SELF
 
🙂🙂🙂🙂🙂🙂🙂🙂
 
Última edição:
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 edição:
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
 
Utiliza Jquery y ya esta una fácil y rápida solución has lo que dice bertocoder
 
Hola Betas!, estoy con un problemilla en un menú, el código que tengo es este:
Inserir CODE, HTML ou 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.
 
Voltar
Topo