如果我想在menu.php

时间:2016-02-25 19:13:44

标签: php html web

我用过' include' php分隔我网站的标题。 所以,如果我需要更改标题中的导航菜单部分,而不是每个页面修复超过20页,我可以轻松修复。

我的问题是我想添加一个课程,“#current;'在导航按钮之一。 例如,如果我在' Home'页面,然后我想改变' Home'的字体颜色。按钮变红。 如果我转到'联系'页面,我想要'联系'按钮变为红色并希望' Home'按钮到正常颜色。

由于所有导航按钮代码都在header.html中。 如何添加课程' current',以便用户可以知道他们正在查看哪个页面?

提前致谢。

3 个答案:

答案 0 :(得分:0)

如果您使用的是php,那么您可以像这样设置它。

1)为每个链接提供课程

<li class="home"><a href="home.php">Home</a></li>
<li class="about"><a href="about.php">About</a></li>
<li class="contact"><a href="contact.php">About</a></li>

注意:提供文件名&amp; classname相同(如果filename是home.php,那么此菜单的类是“home”)

2)在header.php中使用此代码。

<?php
$class = basename($_SERVER['REQUEST_URI'], '.php?' . $_SERVER['QUERY_STRING']);
/* This basename function returns filename from url. For example if url is http://www.example.com/home.php?id=15, then this will return "home" only. */
?>
<script type="text/javascript" src="jquery.min.js"> <!-- Link your jquery library -->

<script type="text/javascript">
$(document).ready(function(){
   $(".<?php echo $class; ?>").addClass('current');
});
</script>

答案 1 :(得分:0)

我无法发表评论,因为我没有50个代表,但我做了一些研究并找到了这个链接How to have the class=“selected” depending on what the current page/url is$_SERVER['REQUEST_URI']是此示例中使用的方法。因此,如果您需要进一步澄清,您也可以查看。 编辑:这个例子不需要JQuery。或者你可以试试这个:

   <div class="menu">
        <div id="whatever" class="whatever">
            <ul>
                <li><a href="index.php" <?php if (basename($_SERVER['PHP_SELF']) == "index.php") { ?> class="current" <?php } ?>>Home</a></li>
                <li><a href="about.php" <?php if (basename($_SERVER['PHP_SELF']) == "about.php") { ?> class="current" <?php } ?>>About</a> </li>
            </ul>
         </div>
    </div>

答案 2 :(得分:0)

这是一个非常基本且不安全的例子,只是为了让你有希望得到这个想法。

首先找出您所在的页面,也许您有一个名为page的URL参数,如index.php?page = home或index.php?page = contact。

<?php $page=$_REQUEST['page']; ?>

然后编写HTML:

<a href="index.php?page=home">Home</a><br>
<a href="index.php?page=contact">Contact</a>

现在将类检查添加到您的链接:

<a href="index.php?page=home" class="<?=($page=='home'?'current':'');?>">Home</a><br>
<a href="index.php?page=contact" class="<?=($page=='contact'?'current':'');?>">Contact</a>

(这使用花哨的内联IF语句,只是因为它们非常符合目的。如果你还不知道它们,我建议你阅读它们。)

如果您的$ page变量设置为“home”,这将生成HTML源代码,如下所示:

<a href="index.php?page=home" class="current">Home</a><br>
<a href="index.php?page=contact" class="">Contact</a>

您还可以将整个类分配包含在PHP检查中:

<a href="index.php?page=home"<?=($page=='home'?' class="current"':'');?>>Home</a><br>
<a href="index.php?page=contact"<?=($page=='contact'?' class="current"':'');?>>Contact</a>

这将生成如下的HTML源代码:

<a href="index.php?page=home" class="current">Home</a><br>
<a href="index.php?page=contact">Contact</a>

最实用的方法是简单地创建一个为您生成所有内容的小功能,例如这个:

<?php
    function makeNavLink($pageName){
        global $page;
        $link='<a href="index.php?page='.$pageName.'"';
        $link.=($page==$pageName?' class="current"':'').'>';
        $link.=ucwords($pageName).'</a>';
        return $link;
    }
?>

这样您就可以像这样调用页面中的函数:

<?=makeNavLink("home");?><br>
<?=makeNavLink("contact");?>

如果您的网页是“联系人”,它也会使HTML输出看起来像这样:

<a href="index.php?page=home">Home</a><br>
<a href="index.php?page=contact" class="current">Contact</a>