如何在 codeigniter 中将 class="active" 设置为导航菜单?

Posted

技术标签:

【中文标题】如何在 codeigniter 中将 class="active" 设置为导航菜单?【英文标题】:How can I set class="active" to navigation menu in codeigniter? 【发布时间】:2015-08-02 17:28:56 【问题描述】:

我刚开始成为一名网络开发人员。现在我第一次创建了一个动态网站。我不知道如何将class="active" 设置为导航菜单。 这是我的菜单代码:

<li>
    <a href="<?php echo base_url(); ?>patient/createpatient"><i class="fa fa-users fa-lg"></i> Create Patient </a>
</li>
<?php  ?>
    <li>
       <a href="<?php echo base_url(); ?>patient/listpatient"><i class="glyphicon glyphicon-list-alt fa-lg"> </i> List Patients </a> 
    </li>
<?php if( $usertype == "Admin")?>
    <li>
    <a href="<?php echo base_url(); ?>user/"><i class="fa fa-list fa-lg"> </i> List Users </a> 
    </li>`

【问题讨论】:

@Craig 我在style.css 中设置了下面的内容,但它不起作用 li a.active font-weight: bold; background-color: #53BEC5; @Craig 这只适用于我的代码。 @saty 已将活动类添加到图标,而不是链接。 @Craig 它只适用于两个项目。最后一个它不起作用。我尝试对其进行多次测试,但仍然存在问题。 &lt;a href="&lt;?php echo site_url('user/'); ?&gt;" class="&lt;?php if($this-&gt;uri-&gt;uri_string() =="user/'') echo 'active'; ?&gt;"&gt;&lt;i class="fa fa-list fa-lg"&gt;&lt;/i&gt; List Users&lt;/a&gt; 删除“user/”的尾部斜杠,看看是否有帮助。 【参考方案1】:

您可以使用$this-&gt;uri-&gt;segment();

<li>
    <a href="<?php echo base_url(); ?>patient/createpatient" <?php if($this->uri->segment(1)=="menu_name")echo 'class="active"';?> ><i class="fa fa-users fa-lg"></i> Create Patient </a>
</li>
<?php  ?>
    <li>
       <a href="<?php echo base_url(); ?>patient/listpatient" <?php if($this->uri->segment(1)=="menu_name")echo 'class="active"';?> ><i class="glyphicon glyphicon-list-alt fa-lg"> </i> List Patients </a> 
    </li>
<?php if( $usertype == "Admin")?>
    <li>
    <a href="<?php echo base_url(); ?>user/" <?php if($this->uri->segment(1)=="menu_name")echo 'class="active"';?> ><i class="fa fa-list fa-lg"> </i> List Users </a> 
    </li>

【讨论】:

抱歉什么是 menu_name?你指的是什么? 考虑 $this-&gt;uri-&gt;segment(1) 返回 createpatient ,然后 "menu-name" 应该是 "createpatient".. 我写 menu-name 只是为了举例。你应该用各自的菜单名称替换每个 更简单的&lt;?= uri_string() == 'profile' ? 'active':'' ?&gt;【参考方案2】:

我在大多数项目中都这样做。我是如何做到这一点的;

<a href="<?php echo site_url('patient/listpatient'); ?>" class="<?php if($this->uri->uri_string() == 'patient/listpatient')  echo 'active';  ?>"><i class="glyphicon glyphicon-list-alt fa-lg"></i> List Patients</a>

它匹配当前的 uri 字符串和链接 href。如果匹配,它将为链接添加一个活动类。

希望这会有所帮助。

我还使用了 site_url 而不是 base_url

【讨论】:

申请class active需要写css代码吗? 是的。如果没有 CSS,它看起来会完全一样。 .active 字体粗细:粗体; 【参考方案3】:

试试这个。我认为不需要 javascript 或 jquery。

如果您使用的是 codeigniter,那么您可以使用 URI 类。 使用

从 url 获取菜单
$this->uri->segment();  

并应用到您的代码如下

<li>
    <a href="<?php echo base_url(); ?>patient/listpatient"><i class="glyphicon glyphicon-list-alt fa-lg <?php if($this->uri->segment(1)=="memu_name")echo "active";?>"> </i> List Patients </a> 

</li>

【讨论】:

使用 uri_segment() 意味着他的前 2 个链接将处于活动状态,因为它们在第一段都有“耐心”。【参考方案4】:

我使用了 Codeigniter URI 类 $this-&gt;uri-&gt;segment();

请看我的代码:

<li class="<?=($this->uri->segment(1)==='technology')?'active':''?>"><a href="<?php echo base_url('technology')?>">Tech</a></li>

请注意....

class="<?=($this->uri->segment(1)==='technology')?'active':''?>"

您也可以使用 URI 类 $this-&gt;uri-&gt;uri_string()

这是我的主页(索引)活动类

<li class="<?=($this->uri->uri_string()=== '')?'active':''?>"><a href="<?php echo base_url('')?>">Home</a></li>

【讨论】:

【参考方案5】:
<a href="<?=site_url('contact')?>" <?php if($this->uri->segment(1)=="contact") echo 'class="active nav__item-link"';?> class="nav__item-link">Contact Us</a>

【讨论】:

您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center。

以上是关于如何在 codeigniter 中将 class="active" 设置为导航菜单?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 CodeIgniter 分页中将类名设置为 <a> 标签

如何在codeigniter中将上传图片比例限制为16:9?

如何在 Codeigniter 中将值从视图传递到模型

如何在codeigniter中将数据从视图发送到控制器

如何在 Codeigniter 中将变量从一个控制器传递到另一个控制器

如何在codeigniter中将文件夹转换为Zip文件,其中文件夹包含一些图像文件