2012-07-18 63 views
1

我有一個視圖模塊,它具有用於上傳文件的html和javascript。我想要將腳本加載到頁腳中(僅作爲示例)。所以基本上,視圖文件應該能夠改變頁腳或頁眉的內容。我試圖通過首先將頁面讀入緩衝區然後將內容輸出到模板文件來完成此操作。CodeIgniter - 在內容視圖文件的腳註視圖中加載腳本

我的控制器有看起來像這樣的功能 -

public function test() 
{ 
    ob_start(); 
    $this->load->view('content'); // uploader module 
    ob_end_clean(); 
    $this->load->view('template', array($out1, $out2)); // ideally this will be output into a template file. right now i'm just trying to echo it 
} 

我上傳模塊看起來是這樣的 -

<div>some div for uploading</div> 
<?php $out1 = ob_get_contents(); ?> 
<?php ob_clean(); ?> 

<script> 
Logic for uploading that needs to go in the footer 
</script> 
<?php $out2 = ob_get_contents(); ?> 
<?php ob_clean(); ?> 

模板文件應該是這樣的 -

<html> 
<body> 
<?php echo $out1; ?> 

<scripts>other javascript code and includes</script> 
<?php echo $out2; ?> 
</body> 
</html> 

但是我無法保存緩衝區內容並將其傳回控制器($ out1,$ out2)。有誰知道我可以如何實現這一點?目標基本上是延遲加載JavaScript代碼,但將JavaScript代碼駐留在內容文件中以使其更容易編碼。什麼是最好的方法來做到這一點?我需要一個全局數組還是一個新的父控制器?

謝謝!

回答

1

您可以在視圖之間傳遞變量,像這樣:

<? ob_start(); ?> 
<script type="text/javascript"> 
    var foo = 66; 
    console.log(foo + 16); 
</script> 
<? $this->load->var('my_script', ob_get_clean()) ?> 

如果你運行在一個視圖上面的代碼(或控制器,爲此事)^^,將緩衝區的內容將在任何意見可後面加載爲$my_script

+0

謝謝!這就是我一直在尋找的! – Alex 2012-07-18 00:49:48

相關問題