сделайте мою текущую ссылку активной

#php #css #url

#php #css #url

Вопрос:

Что ж, давайте попробуем объяснить, прошу прощения за мой английский.

У меня есть несколько XML-файлов, откуда я получаю URL-адрес с помощью некоторых php-скриптов

все идет правильно, единственная проблема в том, что я хочу изменить цвет выбранной ссылки, как в css: active, или предоставить только эту ссылку, например, class =»current»

это ниже динамически преобразует URL-адреса к данным

 echo "<ul><li ><a  href='?xml1=".$xmlGet."amp;link=".$link." '>".$slide->title."</a></li></ul><br/>";
  

с помощью приведенного выше я получаю список ссылок, а не только одну, как показано ниже, в виде URL-адресов

 http://localhost/html5/playerEnd/hoofdstuks.php?xml1=chapter_3733amp;link=1
http://localhost/html5/playerEnd/hoofdstuks.php?xml1=chapter_3733amp;link=2
http://localhost/html5/playerEnd/hoofdstuks.php?xml1=chapter_3733amp;link=3
etc etc 
  

и она отобразится в виде меню, подобного этому

ссылка 1 ссылка 2 ссылка 3 ссылка 4 и т.д. и т.п.

каждая ссылка загружает разные данные на мою страницу при нажатии, поэтому я хочу, чтобы та, по которой нажата, была активной, как другой цвет или что-то в этом роде.

Ответ №1:

Используйте $_GET['link'] , чтобы узнать, по какой ссылке был нажат. Затем добавьте класс к ссылке, который соответствует этому. Вам нужно будет определить active класс.

 $linkID = $_GET['link'];

echo "<ul><li ><a  href='?xml1=".$xmlGet."amp;link=".$link." '";

if ($linkID == $link) { echo " class="active" "; }

echo ">".$slide->title."</a></li></ul><br/>";
  

И если вы хотите, чтобы у li был класс (как указано в комментариях):

 $linkID = $_GET['link'];

echo "<ul><li";

if ($linkID == $link) { echo " class="active" "; }

echo "><a  href='?xml1=".$xmlGet."amp;link=".$link."'>".$slide->title."</a></li></ul><br/>";
  

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

1. Обычно я сохраняю classname (или весь атрибут) в переменной, а затем выводю весь тег в одном echo операторе. Что-то вроде foreach ( $links as $linkID => $linkName ) { $active = $linkID == $_GET['id'] ? 'class="active"' : ''; echo "<a href='?id={$linkID}' {$active}>{$linkName}</a>"; } , но с переводом строк, конечно 😉 Это кажется немного более читаемым, чем повторение одного тега в 3 строки с условием.

2. вы делаете мой день лучше, вы очень, очень, очень благословляете, где поставить вам точку ?? 🙂

3. и другой вопрос, хочу ли я, чтобы у <li> был класс??