PHP当前页面名称有问题

时间:2014-02-06 22:51:51

标签: php

我正在创建菜单,如果特定页面是最新的,菜单项会分配不同的颜色。 简单的情况。 所以我这样做:

<?php $page = $_SERVER['SCRIPT_NAME'];?>
<?php if ($page == "index.php"){ echo "class='active'";} ?> >
 <a href="index.php">Home</a> 

除了一个页面之外,它适用于每个页面。 我尝试了stackoverflow上建议的其他一些选项

How to get current PHP page name,如:

echo basename($_SERVER['PHP_SELF']); returns file_name.php

if(basename(__FILE__) == 'file_name.php') {
  //Hide
} else {
  //show
 }

仍然无效。

3 个答案:

答案 0 :(得分:0)

$pagename = basename($_SERVER['PHP_SELF']);
if($pagename=='index.php'){
    echo "class='active'";
}

答案 1 :(得分:0)

根据您提供的数据,我建议使用解决方案而不是解决方案。我的意思是你使用

这可以按如下方式完成:

<ul id="menu">
  <li><a href="index.php">Home</a></li>
  <li><a href="about.php">About</a></li>
  <li><a href="any/other/path/index.php">Any Other</a></li>
</ul>

<script>
function setCurrentNavLink(id){
  nav = document.getElementById(id);
  links = nav.getElementsByTagName('a');
  for (i = 0; i < links.length; i++){
    if (links[i].href == location.href){         
      links[i].className = 'current';
      break;
    }
  }

}

  setCurrentNavLink('menu');
</script> 

查看此演示:http://jsbin.com/tomid/1

答案 2 :(得分:0)

排序。问题出在JQuery中,那就是在当前页面上运行Tabs。

  $(document).ready(function(){

    // When a link is clicked
    $("a.tab").click(function () {


        // switch all tabs off
        $("ul.tabs li a.active ").removeClass("active");
                    //$(".active ").removeClass("active");

        // switch this tab on
        $(this).addClass("active");
        //$(".collapse navbar-collapse").addClass("active");


        // slide all content up
        $(".content").slideUp();

        // slide this content up
        var content_show = $(this).attr("title");
        $("#"+content_show).slideDown();

    });

  });

错误发生在第3部分,其中Class .active已从Every对象中删除。包括标题。因此标题不显示为活动状态。 除此之外,必须仅从选项卡选项卡中删除类.active。