2014-03-06 39 views
0

以下PHP函数将add class =“active”添加到当前页面打开。echo class“active” - 如果class =“”已经存在或不存在。

<?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 class="icon-glass"<?php href('index.php');?>>Home</a></li> 
<li><a <?php href('about.php');?>>About</a></li> 

的问题是,该功能只与没有类= “菜单项作品” 宣称,即:

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

而且它不适用于这一个:

<li><a class="icon-glass"<?php href('index.php');?>>Home</a></li> 

我相信这是值得做的这部分脚本:

if ($page == $currentPage) { 
    echo 'class="active"'; 
} 

问题:我如何把它做什么,现在呢,这是增加class=""时尚未添加的话,也只需在已经存在的类中添加.active位(如果找到)?

我试图只使用echo 'active';,但没有奏效。

+1

尝试'return',而不是'echo' – Albzi

+0

不,没没有工作。 – Leo

+0

更改为返回后,您是否已将php代码更改为''中的'echo href('index.php')'。 – krishna

回答

0

尝试用现有的PHP代码格式

<li><a class="icon-glass <?php href('index.php');?>">Home</a></li> 
<li><a class="<?php href('about.php');?>">About</a></li> 

意味着你必须呼应类活性内部类属性的双引号“”。

+0

添加它使HTML这样的:Home Leo

+0

尝试代码下面我张贴 – itzmukeshy7

0

替换

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

    if ($page == $currentPage) { 
     echo ' active " '; 
    }else{ 
     echo ' " '; 
    } 
    echo ' href="' . $url . '" '; 

功能的href}

而且这个网站

<li><a class="icon-glass"<?php href('index.php');?>>Home</a></li> 
<li><a <?php href('about.php');?>>About</a></li> 

<li><a class="icon-glass <?php href('index.php');?>>Home</a></li> 
<li><a class="<?php href('about.php');?>>About</a></li> 
+0

这是不是一个很好和可靠的方式来做到这一点?正如你在类里面加入HREF – Leo

+0

Href不在类里面看看输出类已经关闭了看看@ this codeif($ page == $ currentPage){ echo'active''; } else { echo '''; }如果我们在其他人的帮助下添加活动或不活动,则类总是关闭。 – itzmukeshy7

相关问题