0

主视图

<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
            $a = ($_GET['pages/']);
            switch($a)
        {
                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>
</table>

菜单视图

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

pages_controller

class Pages extends CI_Controller
{
    public function __construct()
    {
        parent::__construct();
        $this->load->helper('html');
        $this->load->helper('url');
        $this->load->helper('form');
    }
    public function index()
    {
        $this->load->view('main_view');
    }
    public function home() { echo "Hello"; }
    public function about() { echo "Hello about"; }
}

我想切换到菜单中的其他选项,并且只更改td id="content"包含内容的列。但它不起作用。

我认为错误在于开关。

我做了类似的事情,但我从未使用过框架

4

1 回答 1

0

首先,使用表格作为格式化方法不是语义 HTML。最好避免它。

codeigniter 有一个 $this->input->get('variablename'); 这比 $_GET() 更安全,如果 GET 未设置,则返回 FALSE。

URL 中的 get 调用需要 URL 中的 ?name1=value1。您没有使用它,这可能是它不起作用的原因。

CI 确实允许控制器方法中的参数。查看它,您可以将开关放在 Pages::index 方法中。

于 2014-02-22T11:15:11.157 回答