2014-02-06 89 views
1

我正在創建菜單,如果特定頁面是最新的,菜單項目分配不同的顏色。 簡單的情況。 所以我這樣做:PHP當前頁面名稱的問題

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

這適用於每一頁,除了一個。 我試着計算器

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 
} 

還不行。

+2

什麼是實際價值和預期的是什麼? – zerkms

+1

它不適用於哪一頁? – helion3

+1

你是否嘗試拋出所有這些變量的值? 'var_dump($ _ SERVER ['SCRIPT_NAME'])','var_dump(basename($ _ SERVER ['PHP_SELF']))'etc ... –

回答

0
$pagename = basename($_SERVER['PHP_SELF']); 
if($pagename=='index.php'){ 
    echo "class='active'"; 
} 
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

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從每個對象中移除。包括標題。因此標題沒有顯示爲活動。 除此之外,class .active只能從Tabs選項卡中刪除。