2013-01-03 68 views
0

我有這段代碼,當我用mydomain/index.php/blog調用函數時,一切都正常,但是這種情況下的內容即「index」正在顯示在頁面的頂部。 我希望它顯示在我的CSS中定義的內容區域中。有什麼問題?如何在codeigniter的正確位置放置內容?

<?php 
    class Blog extends CI_Controller{ 

     public function __construct(){ 
      parent::__construct(); 
     } 

     public function index(){ 

      $this->load->view('template/header'); 
      echo "index"; 
      $this->load->view('template/footer'); 
     } 

    } 
    ?> 
+0

參閱有關重寫的URL的[笨文檔】(http://ellislab.com/codeigniter/user-guide/general/urls.html)。 – wallyk

回答

2

有兩種方法可以在CodeIgniter中向瀏覽器顯示輸出。使用CI視圖並僅回顯數據。 echo命令立即執行,所以這就是它位於頁面頂部的原因。 load->view方法在輸出庫中的CI中執行 - 因此它不會按照您的echo語句順序執行。

我想說創建另一個查看您的內容,然後調用所有類似的觀點:

$data = array('content_html' => 'index'); 
$this->load->view('template/header'); 
$this->load->view('template/content', $data); 
$this->load->view('template/footer'); 

你的內容視圖可以只回聲出content_html變量:

// views/template/content.php 
echo $content_html; 

另外,您可以控制你的控制器中的內容(雖然不是最好的想法):

$header = $this->load->view('template/header', array(), TRUE); 
$footer = $this->load->view('template/footer', array(), TRUE); 

echo $header; 
echo "index"; 
echo $footer; 

作爲load->view方法的第三個參數傳遞TRUE將視圖返回爲字符串,而不是將其輸出到瀏覽器 - 允許您控制輸出。

1

,如果你想在你的內容區域

<?php 
    class Blog extends CI_Controller{ 

     public function __construct(){ 
      parent::__construct(); 
     } 

     public function index(){ 
      $data['content'] ='Your content'; 
      $this->load->view('template/header'); 
      $this->load->view('template/content_template',$data);     
      $this->load->view('template/footer'); 
     } 

    } 
    ?> 

來顯示數據和創建內容的單獨的模板文件並粘貼您的內容文件中的代碼。

<?php 
print $content; 
?> 

也可參考此URL http://ellislab.com/codeigniter/user-guide/general/views.html

相關問題