2012-12-27 63 views
0

的加載視圖讓說我HV這一觀點在控制器control1.php(主)笨:內格視圖

<body> 
lorem epsim 
<div table></div> 
lorem epsim 
</body> 

我做

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

現在我需要加載的內容從另一視圖(tbl.php),它是由另一個控制器

control2.php

function load_table(){ 
$data['x']=1; 
$this->load->view('tbl.php',$data); 
} 
012稱爲DIV =表

tbl.php視圖

<ul>$x</ul> 

我該怎麼辦呢?

我試圖從控制器1加載CONTROLER 2和功能load_table分配給變量並傳遞到主視圖,但它沒有負載的Cuz工作>視圖被執行而不是保存輸出到可變..

原因是: 我需要做的是,tbl.php視圖是一個複雜的表,我需要通過ajax調用刷新和加載,所以我需要它在不同的視圖獨自 所以有人可以向我解釋如何我可以解決這個問題嗎?

+1

請編輯您的帖子中的「文字說話」。 – Sparky

回答

8

您不能從另一個單獨的控制器調用一個控制器方法。但是,您可以獲得表格視圖的輸出並使用該表格:

// main.php 
<body> 
lorem epsim 
<div table><?php echo $table_content; ?></div> 
lorem epsim 
</body> 

// control1.php 

$table_data['x'] = 1; 
$data['table_content'] = $this->load->view('tbl.php', $table_data, TRUE); 

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

所以,你得到的數據傳遞給tbl.php視圖,並傳遞給負載>視圖的方法 - 也傳遞TRUE作爲第三個參數 - 這將返回該視圖的內容作爲字符串(而不是輸出到瀏覽器)。現在,您有一個$ data變量傳遞到main視圖,包含表格html,您可以在主視圖中回顯。

如何從視圖中獲取$data['table_content']數據取決於您。您可以創建另一個控制器的方法 control1.php,你可以創建一個幫助文件,可以認爲加載到一個字符串,返回等

+0

在你的情況下,如何獲得$ table_data視圖? – freestyle

+0

@freestyle - 哪個視圖? – swatkins

+1

由於代碼是現在的 - 您可以使用'$ x'變量訪問'tbl.php'文件中的'x'變量。然後,你可以用'$ table_content'變量訪問'main'視圖中的'table_content'變量。 – swatkins

1

也許你可以創建一個內表的代碼視圖,然後你可以爲Ajax

<div id="for_ajax"> 
     <?php $this->load->view('table'); ?> 
</div> 

我有類似的需求做你格內,但其礦山就像一個評論牆的問題。

+0

如果我這樣做,我將無法將變量傳遞給tbl視圖。 – Zalaboza

+1

你可以這樣做,我使用template.php,嘗試加載主視圖內的表視圖。php視圖。主視圖複製$數據,所以不會有問題,表格視圖也會複製它。 –

+0

真棒感謝工作完美:) –

1

內部的視圖使用

$ CI = & get_instance (); $ CI-> load-> view('view_name');

在一個php塊中