如何在php中设置当前页面"活动"

jen*_*nny 14 css php

嗨我在每个页面上都有我的网站上的菜单,我想把它放在它自己的menu.php文件中,但我不知道如何为我所在的任何页面设置class ="active".这是我的代码:请帮帮我

menu.php:

<li class=" has-sub">
    <a class="" href="javascript:;"><i class=" icon-time"></i> Zeiten<span class="arrow"></span></a>
    <ul class="sub">
       <li><a class="" href="offnungszeiten.php">Öffnungszeiten</a></li>
       <li><a class="" href="sauna.php">Sauna</a></li>
       <li><a class="" href="frauensauna.php">Frauensauna</a></li>
       <li class=""><a class="" href="custom.php">Beauty Lounge</a></li>
       <li><a class="" href="feiertage.php">Feiertage</a></li>
    </ul>
</li>
Run Code Online (Sandbox Code Playgroud)

pac*_*age 15

如果要在脚本中构建一个页面数组并将其与当前活动页面一起传递给视图文件,会更容易:

//index.php or controller

$pages = array();
$pages["offnungszeiten.php"] = "Öffnungszeiten";
$pages["sauna.php"] = "Sauna";
$pages["frauensauna.php"] = "Frauensauna";
$pages["custom.php"] = "Beauty Lounge";
$pages["feiertage.php"] = "Feiertage";

$activePage = "offnungszeiten.php";


//menu.php
<?php foreach($pages as $url=>$title):?>
  <li>
       <a <?php if($url === $activePage):?>class="active"<?php endif;?> href="<?php echo $url;?>">
         <?php echo $title;?>
      </a>
  </li>

<?php endforeach;?>
Run Code Online (Sandbox Code Playgroud)

使用像Smarty这样的模板引擎,你的menu.php会更好看:

//menu.php
{foreach $pages as $url=>$title}
   <li>
       <a {if $url === $activePage}class="active"{/if} href="{$url}">
         {$title}
      </a>
   </li>
{/foreach}
Run Code Online (Sandbox Code Playgroud)


小智 15

这个方法使用php获取当前页面,在这种情况下,它会传递一个活动的单词并将其放在class参数中以将页面设置为活动状态.

<?php
function active($currect_page){
  $url_array =  explode('/', $_SERVER['REQUEST_URI']) ;
  $url = end($url_array);  
  if($currect_page == $url){
      echo 'active'; //class name in css 
  } 
}
?>
<ul>
    <li><a class="<?php active('page1.php');?>" href="http://localhost/page1.php">page1</a></li>
    <li><a class="<?php active('page2.php');?>" href="http://localhost/page2.php">page2</a></li>
    <li><a class="<?php active('page3.php');?>" href="http://localhost/page3.php">page3</a></li>
    <li><a class="<?php active('page4.php');?>" href="http://localhost/page4.php">page4</a></li>
</ul>
Run Code Online (Sandbox Code Playgroud)


cha*_*ool 11

在每个php文件中创建一个变量,如:

$activePage = "sauna"; (different for each page)
Run Code Online (Sandbox Code Playgroud)

然后在你的html页面中检查这个变量

<?php if ($activePage =="sauna") {?>
 class="active" <?php } ?>
Run Code Online (Sandbox Code Playgroud)


asp*_*rin 5

将以下所有代码放入其中menu.php,一切都将得到妥善处理.

// function to get the current page name
function PageName() {
  return substr($_SERVER["SCRIPT_NAME"],strrpos($_SERVER["SCRIPT_NAME"],"/")+1);
}

$current_page = PageName();
Run Code Online (Sandbox Code Playgroud)

使用上面的内容获取当前页面名称,然后将其放入菜单中

<li><a class="<?php echo $current_page == 'offnungszeiten.php' ? 'active':NULL ?>" href="offnungszeiten.php">Öffnungszeiten</a></li>
<li><a class="<?php echo $current_page == 'sauna.php' ? 'active':NULL ?>" href="sauna.php">Sauna</a></li>
<li><a class="<?php echo $current_page == 'frauensauna.php' ? 'active':NULL ?>" href="frauensauna.php">Frauensauna</a></li>
<li><a class="<?php echo $current_page == 'custom.php' ? 'active':NULL ?>" href="custom.php">Beauty Lounge</a></li>
<li><a class="<?php echo $current_page == 'feiertage.php' ? 'active':NULL ?>" href="feiertage.php">Feiertage</a></li>
Run Code Online (Sandbox Code Playgroud)

哪个active是将突出显示菜单项的类的名称