Навигация в php, проблема в фокусе

1

У меня есть CSS-меню на сайте html:

<div id='cssmenu'>
   <ul>
      <li class='active'><a href='index.php'><i class="fa fa-home"></i></a></li>
      <li><a href='about.php'>About</a>
          <ul>
              <li><a href='#'>Me</a></li>
              <li><a href='#'>Compeny</a></li>
          </ul>
      </li>
      <li><a href='#'>Contact</a></li>
   </ul>
</div>

Теперь я преобразовал этот html файл в php и назвал "NAVEGATION.PHP", а затем включил этот файл во все файлы.
Проблема в том, что фокус (класс: активный) застрял на кнопке "Главная".
Я хотел бы, чтобы при изменении страницы фокус меню соответствовал странице.
Я также пробовал JavaScript, но он не работает для меня:

$(function () {
var pgurl = window.location.href.substr(window.location.href.lastIndexOf("/") + 1);
$(".cssmenu ul li").each(function () {
    if ($(this).attr("href") == pgurl) {
        $(this).parent().addClass('active');
    }
    if ((($(this).attr("href") == 'index.php')||($(this).attr("href") == '')) && (pgurl == '')) {
        $(this).parent().addClass("active");
    }
})});
Теги:
drop-down-menu
menu

1 ответ

1
Лучший ответ

Вы можете использовать $_SERVER['PHP_SELF'] который получит ваш текущий путь, и basename, извлечет имя файла из пути, и после этого вы можете просто сравнить со ссылкой на меню

<div id='cssmenu'>
     <ul>
            <li <?php echo (basename($_SERVER['PHP_SELF']) == 'index.php') ? 'class="active"' : ''; ?>><a href='index.php'><i class="fa fa-home"></i></a></li>
            <li <?php echo (basename($_SERVER['PHP_SELF']) == 'about.php') ? 'class="active"' : ''; ?>><a href='about.php'>About</a>
                    <ul>
                            <li><a href='#'>Me</a></li>
                            <li><a href='#'>Compeny</a></li>
                    </ul>
            </li>
            <li><a href='#'>Contact</a></li>
     </ul>
</div>
  • 0
    Код не работает для меня.
  • 0
    предполагая, что код находится в файле php, также попробуйте echo basename($_SERVER['PHP_SELF']) - попробуйте повторить выше и проверьте, что он выводит
Показать ещё 6 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню