2011-08-23 83 views
0

我不完全確定這是否可能,但我會盡我所能解釋我的困境。根據在瀏覽器中打開的頁面設置課程?

我正在處理的網站有一個標題,其中包含指向重要網頁的鏈接。頭文件html代碼駐留在一個文件中,其中包含(php include)所有其他頁面。

這header.html中包含這些代碼的:

<li class="m1"><a href="home.php" class="active">Home</a></li> 
<li class="m2"><a href="faq.php">FAQs</a></li> 
<li class="m3"><a href="">Status</a></li> 
<li class="m4"><a href="">Contact Us</a></li> 

當前打開的頁面是爲了有其階級設置爲「積極的」,但因爲我的頭代碼駐留在短短這不起作用文件。

有什麼辦法,使用php或其他,我可以設置適當的鏈接到類「活躍」取決於打開哪個頁面?

所以,如果我點擊常見問題,我想的代碼看起來像這樣:

<li class="m1"><a href="home.php">Home</a></li> 
<li class="m2"><a href="faq.php" class="active">FAQs</a></li> 
<li class="m3"><a href="">Status</a></li> 
<li class="m4"><a href="">Contact Us</a></li> 

回答

1

是的,你很容易地檢查你使用$_SERVER['PHP_SELF']哪個頁面。

一個很好的方式來處理,這將是通過它們來存儲你的鏈接/職稱的數組,然後循環和回聲活動類時,它等於PHP_SELF

<?php 
$links = array('Home' => 'home.php', 'FAQs' => 'faq.php', 'Status' => '', 'Contact Us' => ''); 
foreach ($links as $text => $page) 
{ 
echo '<li><a href="'. $page .'"'; 
if ($_SERVER['PHP_SELF'] == $page) 
{ 
    echo ' class="active"'; 
} 
echo '>'. $text .'<a></li>'; 
?> 
+0

謝謝,我會這給了一槍,並取回 – xbonez

1

這裏是你可以採取另一條路線:

<?php 
function getCurrPage() { 
    $org_page = substr($_SERVER["SCRIPT_NAME"],strrpos($_SERVER["SCRIPT_NAME"],"/")+1); 
    $stripped_page = substr($org_page, 0, -4); 
    return $stripped_page; 
} 
$curPage = getCurrPage(); 
$actPage = array(); 
$actPage[$curPage] = ' class="active"'; 
?> 
<li class="m1"><a href="home.php"<?=$actPage['home'];?>>Home</a></li> 
<li class="m2"><a href="faq.php"<?=$actPage['faq'];?>>FAQs</a></li> 
<li class="m3"><a href=""<?=$actPage['status'];?>>Status</a></li> 
<li class="m4"><a href=""<?=$actPage['contact'];?>>Contact Us</a></li> 
1

您可以使用jQuery(JavaScript)的動態做到這一點:

$(document).ready(function() { 
    //Add the current class to all links pointing to the current page 
    search = window.location.search; 
    $("*").find("a[href='" + search + "']").each(function(){ 
     $(this).parent('li').addClass("active"); 
     //add your own logic here if needed 
    }) 
}) 

這工作得很好。

另一種方法是使用$_SERVER['PHP_SELF']__FILE__

<li class="m1"><a href="home.php"<?php if (basename($_SERVER['PHP_SELF']) == 'home.php'): ?> class="active"<?php endif; ?>>Home</a></li> 
<li class="m1"><a href="faq.php"<?php if (basename($_SERVER['PHP_SELF']) == 'faq.php'): ?> class="active"<?php endif; ?>>FAQ</a></li> 
<li class="m1"><a href="status.php"<?php if (basename($_SERVER['PHP_SELF']) == 'status.php'): ?> class="active"<?php endif; ?>>Statys</a></li> 
<li class="m1"><a href="contact_us.php"<?php if (basename($_SERVER['PHP_SELF']) == 'contact_us.php'): ?> class="active"<?php endif; ?>>Contact Us</a></li> 
相關問題