[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Меню отдельным блоком с применением PHP
winner_ua
Здравствуйте! Пожалуйста, направьте новичка на правильное решение, если это возможно. На сайте я сделал 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(
                
=> "?id=1",
                
=> "?id=2",
                
=> "?id=3",
                
=> "?id=4",
                
=> "?id=5",    
                
=> "?id=6"      
               
);
  
  
$name_link = array(
                     
=> "ссылка1",
                     
=> "ссылка2",
                     
=> "ссылка3",
                     
=> "ссылка4",
                     
=> "ссылка5",    
                     
=> "ссылка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 написал(а):
ohmy.gif , круто! спасибо огромное, сейчас попробую разобраться!

Спустя 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++)


Еще раз благодарю за помощь!!!
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.