2013-07-15 89 views
0

我有一個thank_you.php文件,其中只包含字符串「Thank you。」。格式化爲成功/綠色。在Codeigniter中,如何將視圖文件寫入視圖文件?

我想要在網站的特定區域顯示此文本,但不知道如何去做。在我的主視圖文件中,我添加了以下行:

<?php $this->template->add_region('success'); ?> 

旁邊的「提交」按鈕。

在我的控制器中,我有一個函數,一旦調用,應該顯示視圖文件「thank_you.php」。

function greeter_thank_you() { 
$this->template->write_view('success', 'thank_you.php'); 
} 

我有標準$警報,$內容,$主等......我的模板文件中的區域,但我怎麼迴應這種觀點文件到另一個視圖文件?有什麼其他的方式我需要去解決它嗎?

+0

什麼模板庫您使用的,因爲它不是自帶的CI。 –

+0

@PrinceEnder問題是否解決?對於任何反饋,我們都表示感謝。 –

回答

1

看來你正在使用Collin Williams' CI Template library

據我所知,你不能在另一個區域內定義一個區域,因此最好將內部區域的值(你稱之爲success)發送到main區域。

  • 如果使用$this->template->write();方法內容寫入main區域:

獲取thank_you視圖文件的使用$this->load->view('thank_you', '', TRUE);的內容和地方把它的write()第二個參數內。

  • 如果您正在使用$this->template->write_view()方法:

使用以下:

$data = array(
    'foo'  => 'bar', 
    'baz'  => 'qux', 
    'success' => $this->load->view('thank_you', '', TRUE) 
); 

$this->template->write_view('main', 'main_region_view_file_here', $data/*, TRUE*/); 

,並添加以下的main區域的視圖文件中:

if (! empty($success)) { 
    echo $success; 
} 

我對Collin Wi沒有任何經驗lliams的模板庫,但我認爲這可能會訣竅。

順便說一句,如果您有任何問題,我都耳朵!

0

如果您想在另一個視圖文件中加載一個視圖文件。

只需鍵入

$this->load->view('FolderPath/FileNameHere'); 

我希望它可以解決您的問題。


編輯:

,或者如果您在綁表演按鈕一些動作後加載另一個視圖。 您可以將您的按鈕重定向到該控制器。 那裏,你可以寫上面的行。

,如果它是一個錨點按鈕只是把<a class="BtnClass" href="ControllerPathHere">Submit</a>

,如果你使用的是一些模板庫請告訴更多地瞭解它。

+0

我不想失禮,但你沒有閱讀和理解我的問題。 – Spookytheboy

+0

'我如何將這個視圖文件回顯到另一個視圖文件?是否還有其他方法需要去解決呢?' 我上面發佈的內容應該工作完美無瑕,它會在其他視圖中加載一個視圖,我每次都使用它,並且您可以將該視圖的內容加載到頁面的任何部分只是使用它。 但是,如果您使用codeigniter的任何模板庫,請告訴我們。 –

+0

@SyedHaiderHassan他正在使用神廟解析器 – sbaaaang

0

在控制器中,您希望將視圖輸出緩衝到變量,並將變量傳遞給模板。 view方法中的第三個參數允許您將視圖輸出作爲字符串返回。

$viewData = array(
    'main' => $this->load->view('thank_you.php', '', true) 
); 

$this->load->view('template.php', $viewData); 

// access the main template data with $main in template.php 

看到這個頁面的底部:http://ellislab.com/codeigniter/user-guide/general/views.html

0

1,您可以通過它像這樣:

function greeter_thank_you() 
{ 
     $data = array(); 
     $thank_page = $this->load->view('thank_you'); 
     $data['thank_you'] = $thank_page; 

     $this->load->view('main',$data); 
} 


inside your main page 

<html> 
    <body> 
    <div id='thank'> 
    <?=$thank_you?> 
    </div> 
    <!--The rest of your codes--> 
</body> 
</html> 
相關問題