2011-02-27 25 views
0

我有一個數據庫中的數據表,我想在我的網站的各個頁面上顯示。理想情況下,我想只是有一個包含或東西,將脫落並獲取數據,並返回HTML表。每次我需要使用它時,html和數據都是相同的。Codeigniter可重用部分

我想知道這樣做

感謝

編輯

如果這會有所幫助,類似的Django「包容」自定義標籤的東西的最佳方式......任何Django開發閱讀

+0

你可以創建一個包含HTML,你可能包括在其他視圖中的視圖(如果您確信每次都會有相同的數據,您可以在將網站存活之前創建html,並且只包含視圖) – Cronco 2011-02-27 01:30:54

+0

數據本身可能不一樣,但數據格式爲,無論在哪個頁面上輸入 – neolaser 2011-02-27 22:11:04

回答

0

好吧,所以這裏有一件事情對我有用,但它絕對不是完美的。

我創建了一個視圖,該視圖調用了獲取數據的模型,然後將數據放入表中。這樣,我只需要將這個視圖放在任何地方。

我明白這完全遺址有MVC框架的地步,但希望它證明什麼,我想做的事...和它的作品

+0

您可能已將該視圖呈現爲一個子視圖,並將包含您的數據的參數傳遞給該子視圖。這種方式不會直接調用數據庫將通過查看。 – 2017-12-21 12:59:18

0

您應該使用模型中的函數來獲取所需的數據。您的控制器調用模型函數並將返回的信息發送到視圖。 Codeigniter不需要使用傳統的PHP。我建議您查看user guide。這非常好,並會告訴你所有你需要知道與CI開發的基本知識。但爲了讓你開始,你要使用Models, Views, and Controllers。你的網址會告訴CI該控制器內部的控制器和功能運行。如果您的網址是

http://www.example.com/my_controller/load_my_view

然後CI將做什麼是在my_controller控制器load_my_view函數內。函數load_my_view依次實例化模型「my_table」並運行數據庫查詢,返回控制器發送給視圖的信息。一個基本的例子如下:

你的模型

class my_table extends CI_Model{ 
    function my_data(){ 
     $this->db->select('column_1,column_2,column_3'); 
     $this->db->from('my_table'); 
     $query = $this->db->get(); 
     if($query->num_rows()>0){ 
      $result = $query->result(); 
     } 
     else{ 
      $result = false; 
     } 
     return $result; 
    } 


} 

你的控制器

class my_controller extends CI_Controller{ 
    function load_my_view(){ 
     $this->load->model('my_table'); 
     $data['my_results'] = $this->my_table->my_data(); 
     $this->load->view('my_view'); 
    } 

}

你查看

<ul id = "my_db_results"> 

    <?php foreach($my_results as $result):?> 
     <li><?php echo $result->column_1." : ".$result->column_2." (".$result->column_3.")";?></li> 
    <?php endforeach;?> 
</ul> 
+0

謝謝您的回覆。我理解mvc,我的觀點是我有一塊數據(在我的情況下,只是一個有序的表),我想在幾個地方使用。因此,不必做所有的事情並將其加載到視圖中,如果有什麼我可以做的只是說「把那張桌子放在這裏」......如果有意義的話 – neolaser 2011-02-27 22:09:40

+0

我猜緩存可能是你的答案,正如bensiu所建議的那樣,除非你需要動態地創建一個映像文件並在最初的獲取請求之後插入任何你需要的表格。 – kevtrout 2011-02-27 22:37:58

+0

緩存每次都會更新表嗎?當然,你可以做一些事情來製作可重複使用的代碼/數據部分...... – neolaser 2011-02-27 23:45:12