2012-11-30 51 views
-1

我有一個用mvc Codeigniter編寫的網站。我希望在特定位置的視圖中調用另一個視圖,因爲例如菜單在許多頁面中重複,並且對於所有視圖都是相同的。包含視圖其他視圖的最佳方式

在我的控制器我有寫:

public function home() 
    { 
     $data['menu_function'] = $this->load->view('backend/include/menu_function_view'); 
     $data['menu'] = $this->load->view('backend/include/menu_view'); 
     $this->load->view('backend/include/header_view_logged'); 
     $this->load->view('backend/home_view',$data); 
     $this->load->view('backend/include/footer_view'); 
    } 

,然後進入我home_view

<?php 
echo($menu_function); 
?> 
<div id="page"> 
    <?php 
    echo($menu); 
    ?> 
    <div id="content"> 
.... 

的問題是,$菜單裏面的內容超出表單頁面。我已經看到,在螢火蟲i將HTML是這樣的:而不是

<div id="menu"> 
... 
</div> 
    <div id="page"> 
    ... 
    </div> 

<div id="page"> 
    <div id="menu"> 
     ... 
    </div> 
    </div> 

我怎樣才能解決呢?

回答

1

不知道這是否是最好的方法,但通常我用它來創建加載視圖的模板文件。這裏的基本思想是:

在文件夾視圖

我創建文件的template.php包含:

$this->load->view('includes/header'); 
$this->load->view($main_content); 
$this->load->view('includes/footer'); 

我再建立文件夾視圖/包括其中包含:

文件header.php and footer.php

在控制器我打電話:

$data['main_content'] = 'user/dashboard'; 
$this->load->view('template', $data); 

編輯:菜單有問題m

如何將$ menu_config這樣的數據傳遞給您的頁眉或視圖模板?

的header.php

<html> 
<head> 
    <title>$title</title> 
</head> 
<body> 

<?php 
    if($menu_position == 'top1') { 
     $this->load->view($menu); 
    } 
?> 

在控制器:

$data['main_content'] = 'user/dashboard'; 
$data['menu'] = 'top_menu'; 
$data['menu_position'] = 'top1'; 
$this->load->view('template', $data); 
+0

並且是我如何與頁眉和頁腳這樣做,但如果菜單是在一個特定的部分,我想將它插入一個特定的div –

+0

我的編輯答案如何? – SubRed

+0

這是一個想法,因爲使用$ this-> load-> view($ menu);我可以創建一個像「include」一樣的功能,並且工作正常 –

相關問題