#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> был класс??