2013-07-11 65 views
0

我正在開發一個codeigniter項目,需要我根據具體情況在表單中顯示不同的html。Codeigniter相當於包括

我真正想要做的就是將這些信息傳遞給視圖並將其輸出到屏幕上。

請務必注意,我使用codeigniter的修改版本,不需要任何種類的$this->load->view即可創建視圖。頁眉和頁腳自動設置,因此使用$this->load->view可能不起作用。

我只是想找到我的文件,並允許它傳遞給我的看法,所以我可以輸出它。我知道我可以使用include來做到這一點,但想知道是否有更簡單的方法。

+1

你從哪裏得到這個修改後的CodeIgniter版本?不知道這一點很難幫助! – djthoms

+0

所以,你在問如何使用框架的修改版本?你能給我們一個鏈接到這個修改後的CodeIgniter嗎?我們不可能在你不知情的情況下幫助你。在「普通」的CodeIgniter中,你可以使用'$ this-> load-> view';不知道你的版本會讓你使用什麼。 –

回答

0

你需要給我們更多的信息,因爲你使用的是非標準的codeigniter,我們不確定你在哪裏代碼殘缺,因爲它與標準不同。

通常情況下,你需要傳遞一些數據做一些邏輯OR(最佳實踐)是讓你的視圖控制器開關表單控制器內,然後再單獨形式根據情況有標準視圖。

例如:

public function some_controller($situation) 
{ 
    $this->load->view('head'); 
    switch($situation) 
    { 
     case '1': $this->load->view('view1'); 
     case '2': $this->load->view('view2'); 
    } 
    $this->load->view('footer'); 
} 

但是因爲我們不知道這是什麼「非標」笨這將是我們不可能解決什麼得到了中省略。

+0

我真的做的是強制它加載我的頁眉和頁腳作爲常量。其他任何東西都是標準的,但我想要做的是與獲取我的文件並將其傾倒到屏幕上。想象一下你上面的內容,而不需要調用頁眉和頁腳。我想將該文件設置爲viewdata。這是唯一的區別是,你不能使用加載 - >查看 – ed209

0

我不確定你在$this->load->view()方法中修改了什麼。無論哪種方式,你可以一個變量傳遞給你的觀點,並基於該變量可以包括內部的各文件的main view

例如,假設你已經通過$situation變量視圖不是做這個

if($situation == 'foo') 
{ 
    include(APPPATH.'views/file1.php'); 
} 
else 
{ 
    include(APPPATH.'views/file2.php'); 
} 
1

聲音像這種不需要加載視圖的功能實際上會阻礙你。我不會推薦這種做法。你可以推斷,如果你不傳遞一個視圖,它會拉動一個默認視圖,但是你可以覆蓋它。你可以用一個方法來創建一個MY_Controller來處理你的模板和視圖,它會假設你是否沒有顯式地聲明一個視圖來調用與該類相同名稱的視圖,並且該文件的名稱與uri(http://ellislab.com/codeigniter/user-guide/general/routing.html)。這樣,如果你需要顯式調用視圖或改變任何東西,你只覆蓋的方法或填充屬性:

if (count($this->loadViews)) 
{ 
    foreach ($this->loadViews as $view) 
     $this->load->view($view); 
}else 
{ 
    $this->load->view($this->uri->segment(1, 'welcome') . '/' . $this->uri->segment(2, 'index')) 
} 

您也可以撥打視圖中的觀點可能仍然工作,讓你可以隨時進入正在由CI的修改版本打了個電話,這樣做

<? if isset($flag): ?> 
    $this->load->view('partial_view1'); 
<? else ?> 
    $this->load->view('partial_view2'); 
<? endif; ?> 

您也可以考慮掛鉤照顧這個問題,以及默認視圖。我有一個項目,我的視圖和模板通過掛接和ob_start視圖來控制,然後擦除它們,然後輸出數據。 http://ellislab.com/codeigniter/user-guide/general/hooks.html

我希望這些解決方案都有所幫助。如果你需要任何東西,只要讓我知道。

+0

這個東西有幾百個視圖,我很懶,這使得打字 - >加載 - >查看一遍又一遍。謝謝您的幫助 – ed209

1

我想通了。我可能不應該說它已被修改,因爲除了你不能使用load-> view這個事實是無關緊要的。如上所述,我只是想輸出文件作爲視圖數據。我想到的是以下。

public function form($form_name = NULL) 
{ 
    $this->view_data['form'] = $this->load->file(APPPATH.'views/stone_sheets/rectangular.php',TRUE); 
} 

基本上我的問題是,我不知道有一個加載文件幫手,也當我試圖使用它,我沒有在一開始APPPATH。謝謝您的幫助。