动态更改Codeigniter中的导航栏

时间:2018-06-26 10:52:59

标签: php html css

我正在将Bootstrap导航栏与CodeIgniter一起使用。 现在,在我的应用程序中,我想将<li>类更改为每个页面动态激活。 所以我可以知道我目前在哪个页面上。这工作正常,但是我面临的问题是单击时 任何其他链接,例如“关于我们”或“服务”等。它应显示关于我们或服务等的活跃状态,并且 应该不会在首页上显示为活动状态,但就我而言,它在关于我们或服务页面等上显示为活动状态,但是 以及它在主页上显示活动页面,甚至很难在主页上显示m,而在主页上应该仅显示活动页面 关于我们或此类服务的页面,任何人都可以告诉我如何解决此问题。

Home.php(控制器页面中的文件)

    <?php  
    defined('BASEPATH') OR exit('No direct script access allowed');  

    class Home extends CI_Controller {  

        public function index()  
        {  
            $this->load->helper('url');
            $this->load->view('header');
            $this->load->view('index'); 
            $this->load->view('footer');
        }  

        public function about()  
        {  
        $this->load->helper('url');
        $this->load->view('header');
        $this->load->view('about'); 
        $this->load->view('footer');                    
        }

        public function services()  
        {  
        $this->load->helper('url');
        $this->load->view('header');
        $this->load->view('services'); 
        $this->load->view('footer');                    
        }

        public function portfolio()  
        {  
        $this->load->helper('url');
        $this->load->view('header');
        $this->load->view('portfolio'); 
        $this->load->view('footer');                    
        }

        public function blog()  
        {  
        $this->load->helper('url');
        $this->load->view('header');
        $this->load->view('blog'); 
        $this->load->view('footer');                    
        }

        public function contact()  
        {  
        $this->load->helper('url');
        $this->load->view('header');
        $this->load->view('contact'); 
        $this->load->view('footer');                    
        }
    }  
    ?>

header.php(视图页面中的文件)

    <ul class="nav nav-tabs" role="tablist">
        <li role="presentation"><a href="<?php echo site_url("Home/"); ?>" class="<?php if($this->uri->segment(1)=="Home"){echo 'active';}?>">Home</a></li> 
        <li role="presentation"><a href="<?php echo site_url("Home/About/"); ?>" class="<?php if($this->uri->segment(2)=="About"){echo 'active';}?>">About Us</a></li>
        <li role="presentation"><a href="<?php echo site_url("Home/Services/"); ?>" class="<?php if($this->uri->segment(2)=="Services"){echo 'active';}?>">Services</a></li>
        <li role="presentation"><a href="<?php echo site_url("Home/Portfolio/"); ?>" class="<?php if($this->uri->segment(2)=="Portfolio"){echo 'active';}?>">Portfolio</a></li>
        <li role="presentation"><a href="<?php echo site_url("Home/Blog/"); ?>" class="<?php if($this->uri->segment(2)=="Blog"){echo 'active';}?>">Blog</a></li>
        <li role="presentation"><a href="<?php echo site_url("Home/Contact/"); ?>" class="<?php if($this->uri->segment(2)=="Contact"){echo 'active';}?>">Contact</a></li>
    </ul>

1 个答案:

答案 0 :(得分:0)

这是因为“主页”在您的结构中始终是第1段,因此始终处于活动状态。

像这样更改逻辑:

    <li role="presentation"><a href="<?php echo site_url("Home/"); ?>" class="<?php if(is_null($this->uri->segment(2)){echo 'active';}?>">Home</a></li>