在CodeIgniter中构建一个菜单

时间:2013-11-14 21:10:11

标签: php codeigniter-2 codeigniter-url

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"列。但它没有用。

我认为错误发生在开关。

我做了类似的事情,但我还没有使用过框架

1 个答案:

答案 0 :(得分:0)

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

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

URL中的get调用需要URL中的name1 = value1。你没有使用它,这可能是它无法正常工作的原因。

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