2015-09-25 28 views
0

我想知道是否有可能作出不同的動作渲染笨視圖後,是這樣的:動作之後呈現視圖(笨)

public function my_function() 
{ 
    $data['var1'] = $this->make_one_action(); 
    $data['var2'] = $this->make_other_action(); 
    $this->load->view('a_view', $data); 
    //and now... more actions?? 
    $this->make_dataBase_action(); 
} 

我想要做的是過程的一些數據數據庫,但不要等待用戶進行此處理(當新視圖不會向用戶顯示數據庫上的這些操作時)。

,多一些......(一個不同的問題,但相關的),我可以做這樣的事情:

public function my_function() 
{ 
    $data['var1'] = $this->make_one_action(); 
    $data['var2'] = $this->make_other_action(); 
    redirect(base_url()); //here is the difference 
    //and now... more actions?? 
    $this->make_dataBase_action(); 
} 

在這種情況下,我會想將用戶重定向到一個新的一頁,後在數據庫上進行處理。

謝謝。

+0

所以,你想把頁面交給用戶,然後*運行一些數據庫查詢? –

+0

你好@RocketHazmat是的,這是我想要的。謝謝。 –

回答

1

轉移將停止執行PHP腳本,如果你願意,你可以加載頁面和發送Ajax請求觸發查詢
假設你正在使用jQuery:在您的控制器添加方法
function executeDbOnpageLoad(){$this->make_dataBase_action();} //add _get to the method name if CI Version 2

,並添加此行到您的「a_view.php」

$(document).ready(function(){ 
    $.ajax("index.php?/ControllerName/executeDbOnpageLoad()") 
}) 

(你需要讓它多一點保障,確保用戶不會觸發這個功能很多次,因爲他想)

+0

嗨@DanielKrom ..但是...在這種情況下,用戶需要等待數據庫的查詢完成,否則? –

+0

是的,更好的解決方案是加載頁面併發送ajax請求來觸發查詢 –

+1

編輯@EloyFernándezFranco –