winner_ua
30.10.2009 - 02:35
Здравствуйте! Пожалуйста, направьте новичка на правильное решение, если это возможно. На сайте я сделал css меню, в котором при выбранной страничке меняется обычное изображение на "выбрано", ему я присвоил класс active. Вот данный блок моего меню:
HTML |
<div id="navigation"> <ul> <li><a href="link1.php" id="active">ссылка1</a></li> <li><a href="link2.php">ссылка2</a></li> <li><a href="link3.php">ссылка3</a></li> <li><a href="link4.php">ссылка4</a></li> <li><a href="link5.php">ссылка5</a></li> <li><a href="link6.php">ссылка6</a></li> </ul> </div>
|
Но это меню я вставляю на каждой странице, присваивая каждой выбранной странице класс active в меню.
Подскажите, пожалуйста, возможно ли сделать этот блок отдельной php страницей (например menu.php), чтоб на каждой страничке я только вставлял <?php include("menu.php"); ?> ?
Если да, возожно ли это реализовать с помощью if else и как?
Например, ход моих мыслей таков: написать условие, в котором бы проверялось, если выбрана link1.php страничка, то присваивать этой страничке (к меню) класс active, если выбрана link2.php страница, то присваивать ей класс active и т.д. Подскажите, плиз, как это должно правильно выглядеть? Если я ошибаюсь, направьте в нужном направлении...
PHP |
<?php
$link1 == '<li><a href="link1.php" class="active">ссылка1</a></li>'; $link2 == '<li><a href="link2.php" class="active">ссылка2</a></li>'; $link2 == '<li><a href="link3.php" class="active">ссылка3</a></li>'; $link2 == '<li><a href="link4.php" class="active">ссылка4</a></li>'; $link2 == '<li><a href="link5.php" class="active">ссылка5</a></li>'; $link2 == '<li><a href="link6.php" class="active">ссылка6</a></li>';
if (isset($_SERVER['HTTP_REFERER']) == 'http://website/link1.php') { echo $link1; } if (isset($_SERVER['HTTP_REFERER']) == 'http://website/link2.php') { echo $link2; } if (isset($_SERVER['HTTP_REFERER']) == 'http://website/link3.php') { echo $link3; } if (isset($_SERVER['HTTP_REFERER']) == 'http://website/link4.php') { echo $link4; } if (isset($_SERVER['HTTP_REFERER']) == 'http://website/link5.php') { echo $link5; } if (isset($_SERVER['HTTP_REFERER']) == 'http://website/link6.php') { echo $link6; } else { echo <<<heredoc
<div id="navigation"> <ul> <li><a href="link1.php">ссылка1</a></li> <li><a href="link2.php">ссылка2</a></li> <li><a href="link3.php">ссылка3</a></li> <li><a href="link4.php">ссылка4</a></li> <li><a href="link5.php">ссылка5</a></li> <li><a href="link6.php">ссылка6</a></li> </ul> </div>
heredoc; }
|
Спасибо огромное!
Спустя 5 часов, 53 минуты, 21 секунда (30.10.2009 - 07:28) Kuliev написал(а):
winner_ua
Можно, только в место IF ELSE используй SWITCH
Спустя 16 часов, 12 минут, 46 секунд (30.10.2009 - 23:41) Guest написал(а):
Спасибо Вам, Kuliev . Вот сделал конструкцией SWITCH CASE, но пока что-то не работает, не направите в нужном направлении плиз?
PHP |
<?php
$link1 == '<li><a href="link1.php" class="active">ссылка1</a></li>'; $link2 == '<li><a href="link2.php" class="active">ссылка2</a></li>'; $link3 == '<li><a href="link3.php" class="active">ссылка3</a></li>'; $link4 == '<li><a href="link4.php" class="active">ссылка4</a></li>'; $link5 == '<li><a href="link5.php" class="active">ссылка5</a></li>'; $link6 == '<li><a href="link6.php" class="active">ссылка6</a></li>';
switch (выражение){
case (isset($_SERVER['HTTP_REFERER']) == 'http://website/link1.php'): echo $link1; break; case (isset($_SERVER['HTTP_REFERER']) == 'http://website/link2.php'): echo $link2; break; case (isset($_SERVER['HTTP_REFERER']) == 'http://website/link3.php'): echo $link3; break; case (isset($_SERVER['HTTP_REFERER']) == 'http://website/link4.php'): echo $link4; break; case (isset($_SERVER['HTTP_REFERER']) == 'http://website/link5.php'): echo $link5; break; case (isset($_SERVER['HTTP_REFERER']) == 'http://website/link6.php'): echo $link6; break; default: echo "<<<heredoc
<div id="navigation"> <ul> <li><a href="link1.php">ссылка1</a></li> <li><a href="link2.php">ссылка2</a></li> <li><a href="link3.php">ссылка3</a></li> <li><a href="link4.php">ссылка4</a></li> <li><a href="link5.php">ссылка5</a></li> <li><a href="link6.php">ссылка6</a></li> </ul> </div>
heredoc;"; break; }
|
Также я незнаю, какой выражение switch я должен присвоить
Спустя 10 часов, 43 минуты, 19 секунд (31.10.2009 - 10:24) Kuliev написал(а):
Guest
Чето с утра не очень прет, да и пятница была вчера в общем вот что накодил ))
надеюсь разберешься
PHP |
$style = "font-size:26px;"; $link = array( 1 => "?id=1", 2 => "?id=2", 3 => "?id=3", 4 => "?id=4", 5 => "?id=5", 6 => "?id=6" ); $name_link = array( 1 => "ссылка1", 2 => "ссылка2", 3 => "ссылка3", 4 => "ссылка4", 5 => "ссылка5", 6 => "ссылка6" ); $id = isset($_GET['id']) ? $_GET['id'] : null;
echo "<div id=\"navigation\">\n"; echo "<ul>\n"; for($i = 1; $i < count($link); $i++) { if($id == $i) echo "<li><a href='".$link[$i]."' style='".$style."'>".$name_link[$i]."</li><br\>"; else echo "<li><a href='".$link[$i]."'>".$name_link[$i]."</li><br\>"; } echo "</ul>\n"; echo "</div>\n"; |
Спустя 9 часов, 56 минут, 32 секунды (31.10.2009 - 20:21) winner_ua написал(а):
, круто! спасибо огромное, сейчас попробую разобраться!
Спустя 1 день, 14 часов, 13 минут, 57 секунд (3.11.2009 - 10:35) winner_ua написал(а):
Kuliev, СПАСИБО ОГРОМНОЕ еще раз, Ваш скрипт очень мне помог. Все
работает! единственное, что добавил, это в строку
for($i = 1; $i < count($link); $i++)
знак меньше равно, иначе не выводило посленюю кнопку меню, т.е.
for($i = 1; $i <= count($link); $i++)
Еще раз благодарю за помощь!!!