Меню PHP — условное форматирование страницы

#php #hyperlink #format #conditional

#php #гиперссылка #форматирование #условное

Вопрос:

У меня есть меню PHP, которое я включаю просто через

 <?php include_once("includes/blog.php") ?>
  

Я пытаюсь выяснить, как переформатировать текст ссылки в меню, если связанная страница отображается в браузере — например (простой пример)

PHP вставляет следующие ссылки:

Раз, два, три, четыре

Если щелкнуть четыре и загрузить страницу, я бы хотел, чтобы она отображалась как

Раз, два, три, четыре

Возможно ли это (я искал свои извинения, если я что-то пропустил).

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

1. Да, это возможно. Для всех, кто может видеть код.

2. просто проверьте либо в URL, либо на новой странице, если есть что-то, что указывает на то, что вы находитесь на этой странице. В случае, дайте ему «активный» класс через CSS

3. вставьте ваш код, который вы используете, includes/blog.php чтобы мы могли рассказать вам, как это сделать

4. Не забудьте принять правильные ответы или ответы, которые помогут вам.

5. Спасибо всем за быстрое предложение поддержки и предложений. Это код, который у меня есть в includes/blog.php : <h3 style=»text-align:center;»>Добро пожаловать в Photogenix Photographer amp; loz; Линкольн</h3> <h5 style=»text-align:center;»> Блоги amp;# all 124; /blog/»> все</a wedding» rel=»nofollow noreferrer»> > amp;#124; <a href=» photogenix.biz/blog/wedding-photographer.php studio» rel=»nofollow noreferrer»> «>свадебная фотография</a> amp;#124;» location

photogenix.biz/blog /… >

Ответ №1:

Вы можете сделать это несколькими способами: переменные $ _GET, данные $ _SESSION, чтение URL текущей страницы,

Вот один из способов сделать это….

Создавайте ссылки так, чтобы:

 //On your actual page
<style>
.bold{ font-weight:bold; }
</style>

//In includes/blog.php
<?php
echo '<a href="pageone.php?id=1" class="'.(($_GET['id'] == "1") ? 'bold' : '').'">One</a>';
echo '<a href="pagetwo.php?id=2" class="'.(($_GET['id'] == "2") ? 'bold' : '').'">Two</a>';
?>
  

Вам нужно будет отформатировать это так, как у вас есть, но, надеюсь, вы поняли идею.

Эта часть class="'.(($_GET['id'] == "1") ? 'bold' : '').'" означает, что если $_GET[‘id’] равно 1, то выделите «жирным шрифтом». Итак, если бы наша ссылка, по которой мы нажали, была pageone.php?id=1, мы знаем, что у нас была бы переменная $ _GET с именем ‘id’, равная 1. Итак, наш класс будет выглядеть так: class="bold" . Если на нашей странице есть .bold{ font-weight:bold; } , то выбранная ссылка будет выделена жирным шрифтом.

Если вы не используете какой-либо фреймворк, который отслеживает ваши страницы, вы можете использовать $_SERVER[‘PHP_SELF’] для сопоставления с вашей ссылкой.

См. Руководство: http://www.php.net/manual/en/reserved.variables.server.php

Если кто-то ввел http://www.example.com/pageone.php

$ _SERVER[‘PHP_SELF’] будет содержать /pageone.php , чтобы вы могли выполнить еще несколько проверок, например

если($_SERVER[‘PHP_SELF’] == ‘/pageone.php ‘){ echo ‘жирный’; }

Это довольно уродливый способ сделать это, хотя он может работать для ваших целей.

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

1. Похоже, это может быть ответом, я бы сделал класс стиля на заказ по мере необходимости и добавил переменные для идентификации каждой ссылки / страницы. Я вставил свой код includes, насколько мог, в свой первоначальный вопрос. К счастью, у меня есть таблицы стилей, поэтому я думаю, что могу добавить код стиля на лист, а не размещать его на каждой отдельной странице. Итак, только 2 файла для редактирования включают и таблицу стилей. Я приму это как ответ — но если мой код или комментарии что-нибудь изменят, я буду следить за этой темой

2. На самом деле возникла бы проблема, если бы доступ к странице осуществлялся напрямую — в URL-адресе не было бы переменной? Есть ли решение для этого — просто отклонить ответ, пока рассматривается этот момент? Ответ — это огромный шаг вперед.

3. Я только что принял ответ, потому что это огромный шаг вперед для меня. Если у кого-нибудь есть что добавить, хотя очень признателен.

4. Я только что обновил этот ответ, включив в него подсказки по использованию $ _SERVER[‘PHP_SELF’] для проверки вашей страницы. Вам придется немного пофантазировать с этим, возможно, используя небольшое регулярное выражение, но если ваш сайт очень прост, примеры будут работать.

5. Спасибо @senica, я воспользуюсь вашими идеями. Даже если идея сервера окажется слишком сложной, первые сделанные вами замечания будут замечательными. Я все же попробую. Еще раз всем спасибо. Я посещал это сообщество несколько раз и обычно нахожу, что вопросы уже заданы и на них даны ответы.