PHP устанавливает активную ссылку на странице, используя

Поэтому я обыскал SO в течение часа, пытаясь найти ответ, а также пробовал различные методы, включая это

Я пытаюсь включить свои страницы вместе с навигацией. Но на правильной странице мне нужен элемент списка, чтобы иметь класс active . Навигация в header.php и в настоящее время выглядит так:

 <nav> <ul> <li class="active"> <a href="/">Home</a> </li> <li> <a href="#">Apps</a> </li> <li> <a href="#">Forums</a> </li> </ul> </nav> 

Во-первых, я понятия не имею, будет ли лучше JS (jQuery), или если PHP будет лучше. Оба не имеют значения, если это сработает.

Также я немного новичок в PHP и стараюсь учиться.

Какой будет самый простой (надеюсь) метод? Поэтому мне не нужно менять много кода, чтобы дать class="active" nav class="active"

В Asumming у вас есть переменная $page (которая содержит имя страницы, в которой вы сейчас находитесь):

  <nav> <ul> <li class="<?php echo ($page == "home" ? "active" : "")?>"> <a href="/">Home</a> </li> <li class="<?php echo ($page == "apps" ? "active" : "")?>"> <a href="#">Apps</a> </li> <li class="<?php echo ($page == "forums" ? "active" : "")?>"> <a href="#">Forums</a> </li> </ul> </nav> 

Вот простой способ, когда вам не нужно добавлять какую-либо другую переменную

 <li class="<?php echo ($_SERVER['PHP_SELF'] == "/index.php" ? "active" : "");?>"> <a href="index.php">Start</a> </li> <li class="<?php echo ($_SERVER['PHP_SELF'] == "/about.php" ? "active" : "");?>"> <a href="about.php">About</a> </li> <li class="<?php echo ($_SERVER['PHP_SELF'] == "/practices.php" ? "active" : "");?>"> <a href="practices.php">Practices</a> </li> 

если вы используете строку запроса exmaple.com?page_id=Apps для передачи идентификатора страницы, чем с помощью php, вы можете подойти к этой вещи

$ page_id = $ _REQUEST ['page_id'];

  <ul> <li class="<?php echo ($page_id == "Home" ? "active" : "");?>"> <a href="/">Home</a> </li> <li class="<?php echo ($page_id == "Apps" ? "active" : "");?>"> <a href="#">Apps</a> </li> <li class="<?php echo ($page_id == "Forums" ? "active" : ""); ?>"> <a href="#">Forums</a> </li> </ul> 

В заголовке страницы используйте:

 <?php $loc = this.location; ?> 

Затем при каждой ссылке добавьте:

 <?php(this.href == $loc) ? echo 'class="active"' : '' ?> 

Если вы не хотите использовать jQuery или PHP, можете сделать следующее:

  1. Дайте идентификатор или другой класс для каждого элемента <li> в «your-include-nav.php».
  2. Определите «активный» стиль с помощью CSS в разделе <head> , на каждой странице.