基于变量codeigniter更改标头值

时间:2013-04-18 12:05:06

标签: codeigniter codeigniter-2

我的标题中有以下内容:

<div id="wrapper" class="homepage itemlist com_k2 category">
  <div id="rt-header">
    <div class="rt-container">
      <div class="rt-grid-3 rt-alpha">
        <div class="rt-block"><a href="#" id="rt-logo"></a></div>
      </div>
      <div class="rt-grid-9 rt-omega">
        <div class="rt-fusionmenu">
          <div class="nopill">
            <div class="rt-menubar">
              <ul class="menutop level1 ">
                <li class="parent  root f-main-parent firstItem f-mainparent-item"> <a class="daddy item bullet" href="www.domain.com"> <span> الرئيسية </span> </a> </li>

                <li class="active root"> <a class="orphan item bullet" href="load_kitchen_list"> <span> المطبخ </span> </a> </li>
                <li class="root"> <a class="orphan item bullet" href=""> <span style="font-size:medium;"> الملف الشخصي </span> </a> </li>
                <li class="root"> <a class="orphan item bullet" href="main/contactus"> <span> للإتصال بنا</span> </a> </li>
              </ul>
            </div>
          </div>
        </div>
      </div>
      <div class="clear"></div>
    </div>
  </div>

现在,如果您调查

  • 元素,您会发现其中一个元素中存在活动标记。这可确保在导航栏中突出显示当前显示的页面。我想知道如何根据加载的视图更改此内容?这是我加载视图的方式:

    $this->load->view('layout/header');
    $this->load->view('home');
    $this->load->view('layout/footer');
    

    因此,在这种情况下,主导航选项卡应处于活动状态。

    此致

  • 3 个答案:

    答案 0 :(得分:3)

    我最近完成了类似的事情。可能不是最好的方式,但它对我有用。

    在您的控制器中,在您的观看之前添加此内容

    $data['contact'] = 'active';
    

    然后将$ data变量从控制器传递给视图

    $this->load->view('header', $data);
    

    在您的视图中,将其添加到列表项

    <li class="contact <?php if(isset($contact)) {echo $contact; }">
    

    答案 1 :(得分:2)

    来自控制器:

    设置菜单名称,并将加载的菜单或页面名称放在变量中,如下所示:

    $data['active'] = 'menu1';
    $this->load->view('layout/header',$data);
    $this->load->view('home');
    $this->load->view('layout/footer');
    

    在视图中:

    <div id="wrapper" class="homepage itemlist com_k2 category">
      <div id="rt-header">
        <div class="rt-container">
          <div class="rt-grid-3 rt-alpha">
            <div class="rt-block"><a href="#" id="rt-logo"></a></div>
          </div>
          <div class="rt-grid-9 rt-omega">
            <div class="rt-fusionmenu">
              <div class="nopill">
                <div class="rt-menubar">
                  <ul class="menutop level1 ">
                    <li class="<?php if(isset($active) && $active == 'menu1') echo 'active';  ?> parent  root f-main-parent firstItem f-mainparent-item"> <a class="daddy item bullet" href="www.domain.com"> <span> الرئيسية </span> </a> </li>
    
                    <li class="<?php if(isset($active) && $active == 'menu2') echo 'active';  ?> root"> <a class="orphan item bullet" href="load_kitchen_list"> <span> المطبخ </span> </a> </li>
                    <li class="<?php if(isset($active) && $active == 'menu3') echo 'active';  ?> root"> <a class="orphan item bullet" href=""> <span style="font-size:medium;"> الملف الشخصي </span> </a> </li>
                    <li class="<?php if(isset($active) && $active == 'menu4') echo 'active';  ?> root"> <a class="orphan item bullet" href="main/contactus"> <span> للإتصال بنا</span> </a> </li>
                  </ul>
                </div>
              </div>
            </div>
          </div>
          <div class="clear"></div>
        </div>
      </div>
    

    答案 2 :(得分:0)

    为每个菜单项指定一个不同的类或id,然后通过jQuery或js

    执行
    <li class="kitchen root"> <a class="orphan item bullet" href="load_kitchen_list"> <span> المطبخ </span> </a> </li>
    <li class="anotherclass root"> <a class="orphan item bullet" href=""> <span style="font-size:medium;"> الملف الشخصي </span> </a> </li>
    <li class="contact root"> <a class="orphan item bullet" href="main/contactus"> <span> للإتصال بنا</span> </a> </li>
    

    然后例如在联系页面中,您只需通过jQuery执行此操作:

    $(document).ready(function(){
        $(".contact").addClass("active");
    });