CodeIgniter中的菜单

时间:2013-11-14 12:37:46

标签: php codeigniter

菜单视图

<td colspan="3" width="60">
<div id="menu">
    <ul>
        <li ><a href="pages/home">Home</a></li>
        <li><a href="pages/about">About</a></li>
        <li><a href="pages/staff">Staff</a></li>
        <li><a href="pages/chat">Chat</a></li>
        <li><a href="pages/championat">Championat</a></li>
        <li><a href="pages/contact">Contact</a></li>
    </ul>
</div>

main_view

<table width="1100" border="1" align="center">
<tr>
    <?php $this->load->view('header_view'); ?>
</tr>
<tr>
    <?php $this->load->view('menu_view'); ?>

</tr>
<tr>
    <td colspan="2"  id="content">
      <?php
        $url = $_GET['pages/'];
        switch($url)
        {
            case "home":
                require("pages/home");
                break;
            case "about":
                require("pages/about");
                break;
        }
      ?>
    </td>
    <?php $this->load->view('rightMenu_view'); ?>
</tr>
<tr>
    <?php $this->load->view('footer_view'); ?>
</tr>

如何切换菜单选项 我尝试这个解决方案,但不起作用!!!! 你能帮帮我吗? 我还有一个控制器名称“页面”这个控制器有方法:home,about,staff,chat,championat THX

帮助PLIZZZ !!!!!!!!!!!

3 个答案:

答案 0 :(得分:1)

您需要控制器的功能名称吗?试试这个:

echo $this->uri->segment(2); //will give you home/about/staff etc.

在这里阅读uri segments

修改:

$controller  = $this->uri->segment(1);
$method      = $this->uri->segment(2);
$what_i_need = $controller.'/'.$method;

答案 1 :(得分:1)

你做错了。您的视图永远不应该基于URL做出显示决策。这是控制器的工作。在pages控制器中,URL的第二部分将映射到同名的函数。然后,您可以在控制器中决定要加载哪个视图,并将其在数据对象中传递给main_view

pages.php(财务主任):

function home()
{
    $data['pageURL'] = 'pages/home';
    $this->load->view('main_view',$data);
}

然后在main_view.php

...
<td colspan="2"  id="content">
<?php require($pageURL); ?>
</td>
...

答案 2 :(得分:0)

您可以使用以下

$this->data['controller'] = $this->router->fetch_class();
$this->data['action'] = $this->router->fetch_method();

这将给出控制器名称和方法名称。从控制器传递给视图。