2013-10-15 32 views
-1

我有3頁。根據我所在的頁面,我想改變活動類以反映這一點。PHP - 根據我所在的頁面,更改活動類

這3頁是索引,博客和聯繫人。他們每個人都有子頁面,比如Work有各種項目的各種PHP文件。博客有各種博客文章。聯繫人只是一個PHP聯繫表格。

我想根據個人的情況將班級=「活動」移動。現在它在每個頁面上都被硬編碼了。

我的代碼是:

<ul class="list-inline" id="menu"> 
    <li class="active"> 
     <a href="index.php">work</a> 
    </li><!-- 
    --><li> 
     <a href="blog.php">blog</a> 
    </li><!-- 
    --><li> 
     <a href="contact.php">contact</a> 
    </li><!-- 
    --><li> 
     <a href="#"><img class="social" src="img/icon/icon-facebook.png" alt="facebook"></a> 
     <a href="#"><img class="social" src="img/icon/icon-twitter.png" alt="twitter"></a> 
    </li> 
</ul> 

回答

0
<ul class="list-inline" id="menu"> 
<li<?php if ($_SERVER['SCRIPT_FILENAME'] == "index.php") { echo " class=\"active\""; } ?>> 
    <a href="index.php">work</a> 
</li> 
<li<?php if ($_SERVER['SCRIPT_FILENAME'] == "blog.php") { echo " class=\"active\""; } ?>> 
    <a href="blog.php">blog</a> 
</li> 
<li> 
    <a href="contact.php">contact</a> 
</li> 
<li> 
    <a href="#"><img class="social" src="img/icon/icon-facebook.png" alt="facebook"></a> 
    <a href="#"><img class="social" src="img/icon/icon-twitter.png" alt="twitter"></a> 
</li> 
</ul> 

諸如此類

0

有許多方法,其中之一是這一個:

<?php 
$page = ''; // @TODO: assign with the right value 
$work_class = $page == 'work' ? 'active' : ''; 
$blog_class = $page == 'blog' ? 'active' : ''; 
$contact_class = $page == 'contact' ? 'active' : ''; 
?> 

<ul class="list-inline" id="menu"> 
    <li class="<?=$work_class?>"> 
     <a href="index.php">work</a> 
    </li><!-- 
    --><li class="<?=$blog_class?>"> 
     <a href="blog.php">blog</a> 
    </li><!-- 
    --><li class="<?=$contact_class?>"> 
     <a href="contact.php">contact</a> 
    </li><!-- 
    --><li> 
     <a href="#"><img class="social" src="img/icon/icon-facebook.png" alt="facebook"></a> 
     <a href="#"><img class="social" src="img/icon/icon-twitter.png" alt="twitter"></a> 
    </li> 
</ul> 

爲了得到更精確的答案是如果您提供了關於代碼其餘部分外觀的更精確信息,這將非常有用。

0

我會循環吧..

<?php 
$base = substr($_SERVER['PHP_SELF'],strrpos($_SERVER['PHP_SELF'], '/')-1); // Something like this to determine the current file such as 'blog.php' 
$links = array(); 
$links['work'] = 'index.php'; 
$links['blog'] = 'blog.php'; 
// .. 

foreach($links AS $name => $url) 
{ ?> 
    <a href="<?php echo $url; ?>" 
    <?php if($base == $url) ?> class="active"<?php } ?> 
    ><?php echo $name; ?></a> 
<?php } ?> 

您可以添加活動類包裹裏的元素過於OFC。

0

添加這個PHP:

<?php #add class .active to current page 
    $directoryURL = $_SERVER['REQUEST_URI']; 
    $path = parse_url($directoryURL, PHP_URL_PATH); 
    $components = explode('/', $path); 
    $currentPage = preg_replace("/\\.[^.\\s]{3,4}$/", "", end($components)); 

    if ($currentPage == "") { 
     $currentPage = "index"; 
    } 

    function href($url) { 
     global $currentPage; 
     $path = explode('/', $url); 
     $page = preg_replace("/\\.[^.\\s]{3,4}$/", "", end($path)); 
     echo 'href="' . $url . '"'; 

     if ($page == $currentPage) { 
     echo 'active'; 
     } 
    } 
?> 

調整你的菜單是這樣的:

<li><a <?php href('about.php');?>>About</a></li> 

* 這應該工作。 祝你好運