Добавление класса в меню PHP

#php

#php

Вопрос:

У меня есть небольшой веб-сайт на php, на котором есть меню, включаемое через include_once . Мне нужен HTML-класс, добавленный в текущий пункт меню для каждой страницы.

Поэтому, если пользователь нажимает на ссылку и переходит на эту страницу, новая страница загрузится с новым пунктом меню с class=»current» . Как я могу это сделать?

Комментарии:

1. Довольно сложно, не видя никакого вашего кода, пожалуйста, подумайте о добавлении вашего html для меню и о том, как оно генерируется в вашем php; также, как вы указываете текущую страницу (массив $ _GET или другой)

Ответ №1:

Допустим, вы пишете свое меню следующим образом:

 <ul>
<li><a href="link1.com?menu=1"> Link1 </a></li>
<li><a href="link2.com?menu=1"> Link2 </a></li>
<li><a href="link3.com?menu=1"> Link3 </a></li>
</ul>
  

Вот старое доброе решение в стиле php4:-p

 <?php
//you get which link was clicked
if(isset($_GET['menu']) $menu = $_GET['menu'];
else $menu = 1;

$1 = $2 = $3 = ""; //you create 3 empty strings
switch($menu){ //you assign the correct string with your css class name
case "1": $1 = 'class="current"';break;
case "2": $2 = 'class="current"';break;
case "3": $3 = 'class="current"';break;
}
?>
//echo the variables into the menu anchors ( <?=$1?> is equivalent to  <? echo $1; ?> )
<ul> 
<li><a href="link1.com?menu=1" <?=$1?> >Link1</a></li>
<li><a href="link2.com?menu=2" <?=$2?> >Link2</a></li>
<li><a href="link3.com?menu=3" <?=$3?> >Link3</a></li>
</ul>
  

Вы также можете поместить <?=$1?> класс в <li> или в любое другое нужное место…

Если вы используете javascript в своем проекте, вы также можете присвоить идентификатор своим якорям (например <a href="link1.com?menu=1" id="link1">Link1</a> ), получить значение меню, как указано выше, с помощью $ _GET, а затем использовать javascript для добавления класса к нужной ссылке.

Я дал вам этот ответ, потому что из того, что вы пишете, я предполагаю, что вы не используете какой-либо фреймворк PHP, а кодируете свое приложение по-старому … здесь есть много хороших фреймворков PHP, которые будут иметь готовое решение для этого … может быть, вначале это сложно, но оно того стоит…

Удачи!