modernas - Hacer<li> activo con incluye usar PHP y CSS
fragata moderna (3)
Yo uso estos archivos como base para mi sitio web:
El menu.php
:
$p = $_GET[''p''];
switch($p)
{
case "home":
$p = "page/home.php";
break;
case "customers":
$p = "page/customers.php";
break;
default:
$p = "page/home.php";
break;
}
<ul id=''nav''>
<li>Title</li>
<ul>
<li class="nav active"><a href="?p=home">Home</a></li>
<li><a href="?p=customers">Customers</a></li>
</ul>
</ul>
El default.php
:
<body>
<div id=''navcontainer''>
<?php include ("menu.php"); ?>
</div>
<div id=''content''>
<?php include ($p); ?>
</div>
El style.css
:
#navcontainer {margin:0; padding:0; width:220px;float:left;}
#nav li {background:#36393D; color:#fff; padding:5px 3px 5px 20px; margin:4px;border-left:5px solid #3F4C6B;}
#nav ul li{display:block; padding:3px; background:#fff; color:#000;border:none; padding:3px 0 3px 30px;}
#nav ul li:hover, #nav ul li.active {background:#eee; cursor:pointer; border-left:5px solid #4096EE;padding:3px 0 3px 25px;}
#nav ul li a {text-decoration:none; color:#000;}
El home.php
y todas las páginas:
<p>Hello world!</p>
Me pregunto si es posible hacer que mi menu.php
cambie de clase a nav active
en los <li>
elementos según la página que se visita actualmente.
¿Algunas ideas?
Puede dar una identificación en SOLICITUD y luego agregar:
$id = $_GET[''id'']
entonces
<li <?php if($id == your_id){ echo "class=''nav visited''";} ?> >
Usando solo php, puedes crear una variable adicional
<?php
$p = $_GET[''p''];
$currentPageId = 0;
switch($p)
{
case "home":
$p = "page/home.php";
$currentPageId = 1;
break;
case "customers":
$p = "page/customers.php";
$currentPageId = 2;
break;
default:
$p = "page/home.php";
$currentPageId = 1;
break;
}
?>
<ul id=''nav''>
<li>Title</li>
<ul>
<li <?php if($currentPageId == 1) { echo ''class="nav active"''; } ?> ><a href="?p=home">Home</a></li>
<li <?php if($currentPageId == 2) { echo ''class="nav active"''; } ?> ><a href="?p=customers">Customers</a></li>
</ul>
</ul>
No pude conseguir
$p = $_GET[''p''];
trabajar. Lo que funcionó para mí fue
$p = $_SERVER[REQUEST_URI];