Выделение текущего пункта меню, если PHP включает


Если я создам навигацию по меню в html и использую PHP, чтобы включить ее на каждой странице моего веб-сайта, как мне выделить текущую страницу, если все, что я могу разместить на странице, - это включить ("menu.html ");

Author: benhowdle89, 2010-12-03

4 answers

Вы также можете написать меню на PHP, так как вы уже используете PHP для загрузки меню, просто запустите оператор if/else в пунктах меню, чтобы проверить, соответствует ли "href" в ссылке текущему URL-адресу страницы и установите для пункта меню значение "активный".

 6
Author: Jack, 2010-12-02 21:10:37

Сделайте свой menu.html в menu.php и в этом файле сделайте что-то вроде

<ul class="menu">
    <li <?php echo ($page == 'page1') ? 'class="current"' : '';?>> <a href="#">Page1</a> </li>
    <li <?php echo ($page == 'page2') ? 'class="current"' : '';?>> <a href="#">Page2</a></li>   
</ul>

Таким образом, на каждой странице, которую вы включаете в свой menu.php, вы можете просто установить переменную так

<?php    
$page = 'page1';
include('menu.php');
?>

Имейте в виду, что это всего лишь пример, так как мы не знаем, как выглядит ваш текущий код

 10
Author: Serge, 2010-12-02 21:12:10

В исходном php это должно быть похоже на

<?php 
$currentPage = ''; // should be accessed from $_SERVER
$cssMenu = array('home.html', 'about.html');
if(array_search($currentPage, $cssMenu)) $cssMenu[$currentPage] = 'active';
?>

<ul id="top-menu">
<li class="<?= $cssMenu['home.html'] ?>">Home</li>
<li class="<?= $cssMenu['about.html'] ?>">About</li>
</ul>
 3
Author: Ish, 2010-12-02 21:12:06

Поскольку вы не можете изменять классы и разделы до загрузки страницы, вам придется использовать какой-то javascript/jquery/что угодно, чтобы динамически выделять ссылку после загрузки страницы. Это не должно быть слишком сложно; у вас может быть немного Javascript, который просматривает div меню (при условии, что вы используете divs) для записи href, которая соответствует текущей странице, а затем добавьте соответствующий класс css к этому конкретному тегу.

 1
Author: eykanal, 2010-12-02 21:07:58