在 CodeIgniter 中构建一个菜单


Build a menu in CodeIgniter

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

menu_view

 <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"列。但它不起作用。

我认为错误出在开关上。

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

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

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

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

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