0

菜单视图

<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>

主视图

<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

帮助 PLIZZ!!!!!!!!!!!!!

4

3 回答 3

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>
...
于 2013-11-14T14:33:12.263 回答
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;
于 2013-11-14T12:40:17.737 回答
0

您可以使用以下

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

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

于 2013-11-14T12:49:42.020 回答