За последние 24 часа нас посетил 19471 программист и 1606 роботов. Сейчас ищут 827 программистов ...

Как сделать подсветку для активного пункта меню?

Тема в разделе "PHP для новичков", создана пользователем semjaza, 15 янв 2014.

  1. semjaza

    semjaza Новичок

    С нами с:
    22 окт 2013
    Сообщения:
    40
    Симпатии:
    0
    есть несколько функций-получение массива и вывод полученного с помощью рекурсивной функции..вот код функций:
    Код (Text):
    1. //Функция получения массива каталога
    2. function get_cat() {
    3.     //запрос к базе данных
    4.     $sql = "SELECT * FROM menu";
    5.     $result = mysql_query($sql);
    6.     if(!$result) {
    7.         return NULL;
    8.     }
    9.     $arr_cat = array();
    10.     if(mysql_num_rows($result) != 0) {
    11.        
    12.         //В цикле формируем массив
    13.         for($i = 0; $i < mysql_num_rows($result);$i++) {
    14.             $row = mysql_fetch_array($result,MYSQL_ASSOC);
    15.            
    16.             //Формируем массив где ключами являются айдишники на родительские категории
    17.             if(empty($arr_cat[$row['parent_id']])) {
    18.                 $arr_cat[$row['parent_id']] = array();
    19.             }  
    20.             $arr_cat[$row['parent_id']][] = $row;  
    21.         }
    22.         //возвращаем массив
    23.         return $arr_cat;
    24.     }
    25. }
    26.  
    27. //вывод каталогa с помощью рекурсии    
    28. function view_cat($arr,$parent_id = main) {
    29.  
    30.     //Условия выхода из рекурсии
    31.     if(empty($arr[$parent_id])) {
    32.         return;
    33.     }
    34.        
    35.     echo "<ul>";
    36.     //перебираем в цикле массив и выводим на экран
    37.     for($i = 0; $i < count($arr[$parent_id]);$i++) {
    38.         echo "<li><a href=\"?category_id={$arr[$parent_id][$i]['title_url']}&parent_id={$parent_id}\""
    39.         .($category_id == $arr[$parent_id][$i]['title_url'] ? ' class="menu-active"':'')
    40.         .">{$arr[$parent_id][$i]['title']}</a>";
    41.         //рекурсия - проверяем нет ли дочерних категорий
    42.         view_cat($arr,$arr[$parent_id][$i]['title_url']);
    43.         echo "</li>";
    44.     }
    45.     echo "</ul>";
    46.    
    47. }
    вывод происходит в файле site.php, примерно так-
    Код (Text):
    1. //получаем массив каталога
    2. $result = get_cat();
    3.  
    4.  
    5. //Выводим каталог на экран с помощью рекурсивной функции
    6. echo '<div id="header">';
    7. echo '<img class="logo" src="images/logo.png">';
    8. echo '<img class="yab" src="images/yab1.png">';
    9. echo '<div id="menu">';
    10.     $menu = view_cat($result);
    11. echo '</div>';
    12. echo '</div>';
    13.  
    14. if(empty($_GET['category_id'])){
    15.     $parent_id = 'home';
    16.     }
    17. else{
    18.     $parent_id = $_GET['category_id'];
    19. }
    20. ?>
    21. </div>
    22. <div id="content">
    23.     <?include($_SERVER['DOCUMENT_ROOT'].'/views/pages/'.$parent_id.'.php');?>
    24. </div>
    крутил разные значения,например
    Код (Text):
    1. $category_id == $arr[$parent_id][$i]['title_url']
    или
    Код (Text):
    1. $category_id == $_GET['title_url']
    ничего не выходит...помогите понять как задать условие правильно-чтоб активному пункту меню соответствовал класс со стилем:"menu-active"...заранее спасибо...

    Добавлено спустя 1 минуту 43 секунды:
    в параметры url попадает значение $category_id == $arr[$parent_id][$i]['title_url']....как я понимаю...я совсем новичок ....подскажите почему не выходит?
     
  2. phpjunior

    phpjunior Новичок

    С нами с:
    23 дек 2013
    Сообщения:
    73
    Симпатии:
    0
    Адрес:
    Барнаул
    в css замути)
    ul.li.active{
    }