Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Изменение значения class="" посредством php
Форумы портала PHP.SU » » Вопросы новичков » Изменение значения class="" посредством php

Страниц (1): [1]
 

1. valkiriy - 13 Апреля, 2013 - 17:05:01 - перейти к сообщению
Здравствуйте PHP.SU,

Возникла проблема объяснение которой я увы найти не смог...
суть в том что изменение содержимого страницы вызывается с помощью профессиональной вставки основанной на GET и Include:
CODE (htmlphp):
скопировать код в буфер обмена
  1. <?PHP
  2. if(isset($_GET['page']) && !empty($_GET['page']))
  3. {
  4.         if(file_exists("./page/".$_GET['page'].".php"))
  5.         {
  6.                 include("./page/".$_GET['page'].".php");
  7.         }
  8.         else
  9.         {
  10.                 include("./page/home.php");
  11.         }
  12. }
  13. else
  14. {
  15.  include("./page/home.php");
  16. }
  17. ?>

работает отлично, но хотелось украсить меню:
CODE (htmlphp):
скопировать код в буфер обмена
  1. <li class="menu-left <?PHP if($_GET['page'] == 'home'){echo 'active';} ?>"><a href="index.php?page=home">Главная</a></li>
  2. <li class="line"><img src="img/navbar_line.png"/></li>
  3. <li class="menu <?PHP if($_GET['page'] == 'register'){echo 'active';} ?>"><a href="index.php?page=register">Регистрация</a></li>
  4. <li class="line"><img src="img/navbar_line.png"/></li>

суть в том что при нажатии ссылки она должна менять свой вид в режим актив (выделятся из общего вида), но подсвечивается только первая ссылка... При переходе по второй, первая гаснет, а вторая увы не загорается, но скрипт работает как надо...
css уже несколько раз проверил...
еще один момент если записываю актив без PHP то все работает, но постоянно (оно и понятно)

Благодарю за помощь.
2. _Dark_ - 13 Апреля, 2013 - 17:10:46 - перейти к сообщению
valkiriy пишет:
суть в том что при нажатии ссылки она должна менять свой вид в режим актив (выделятся из общего вида), но подсвечивается только первая ссылка...

Это не через PHP, а через CSS должно быть реализовано.

valkiriy пишет:
При переходе по второй, первая гаснет, а вторая увы не загорается, но скрипт работает как надо...

Ну значит условие
valkiriy пишет:
CODE (htmlphp):
скопировать код в буфер обмена
  1. if($_GET['page'] == 'register')

ложно, смотрите значения переменных.
3. valkiriy - 13 Апреля, 2013 - 17:13:39 - перейти к сообщению
в том то и дело, что css отказывается выполнять эту работу и переменные увы верны ведь они вызываются ссылкой в которой работает скрипт:
CODE (htmlphp):
скопировать код в буфер обмена
  1. <a href="index.php?page=register">Регистрация</a>
4. _Dark_ - 13 Апреля, 2013 - 17:25:02 - перейти к сообщению
Если у вас текущая страница — register, соответственно,
то я просто понятия не имею, почему
CODE (htmlphp):
скопировать код в буфер обмена
  1. <li class="menu <?PHP if($_GET['page'] == 'register'){echo 'active';} ?>"><a href="index.php?page=register">Регистрация</a></li>

не работает.

Вы уверены, что действительно не работает?
Вы проверьте, класс действительно не добавляется?
5. valkiriy - 13 Апреля, 2013 - 17:29:22 - перейти к сообщению
Просматриваю код страницы) класс добавляется) первая ссылка работает отлично, а остальные (вызванные хоть до нее, хоть после нее) увы визуально не изменяются (но класс добавляется)
Говорю же - мистика)
6. _Dark_ - 13 Апреля, 2013 - 17:37:05 - перейти к сообщению
valkiriy пишет:
Просматриваю код страницы) класс добавляется) первая ссылка работает отлично, а остальные (вызванные хоть до нее, хоть после нее) увы визуально не изменяются (но класс добавляется)

Остальные ссылки отличаются от первой.

У первой класс menu-left, у остальных просто menu.
(Добавление)
И вообще, вместо
PHP:
скопировать код в буфер обмена
  1. <?PHP if($_GET['page'] == 'home'){echo 'active';} ?>

сделайте так:

PHP:
скопировать код в буфер обмена
  1. <?= ($_GET['page'] == 'home') ? 'active' : '' ?>

Как-то покрасивей.

И да, если page не будет передана — будет notice.
7. valkiriy - 13 Апреля, 2013 - 17:45:58 - перейти к сообщению
_Dark_ пишет:
У первой класс menu-left, у остальных просто menu.

да я знаю) просто выделение разное у крайних и средних ссылок
_Dark_ пишет:
сделайте так:

попробую отпишусь)
(Добавление)
Ой сорри) эт я невнимательный - FileZilla оборвала связь и не передала 2 картинки на актив Хм Благодарю за отзывчивость и прошу не ругать за невнимательность Радость
8. DelphinPRO - 13 Апреля, 2013 - 18:02:18 - перейти к сообщению
valkiriy пишет:
с помощью профессиональной вставки

профессионально, спору нет Улыбка

valkiriy пишет:
визуально не изменяются (но класс добавляется)

Если класс добавляется правильно, то следует смотреть инспектором кода в браузере почему не применяется стиль. Тут если нужна помощь, то давайте ссылку на страницу, чтобы нам можно было посмотреть ее браузером "вживую"
(Добавление)
тьфу, блин. долго ж я писал...
9. valkiriy - 13 Апреля, 2013 - 18:08:48 - перейти к сообщению
DelphinPRO пишет:
профессионально

увы в литературе она так называется) Ладно всем спасибо)

 

Powered by ExBB FM 1.0 RC1