2012-12-29 131 views
0

我有一個函數渲染圖表:顯示內容

function testSave(){ 
    $this->_renderChart(156); 
} 

這個我使用的測試。 testSave()函數的視圖顯示_renderChart(156)調用的內容。但是,當我做

function testSave(){ 
    $this->_renderChart(156); 
    $this->_renderChart(153); 
} 

那麼它只是顯示$this->_renderChart(153)通話的內容,但不顯示$this->_renderChart(156)內容。

_renderChart($chart_id)函數說明:

function _renderChart($chart_id = null){ 
    if($chart_id == null) 
     return false; 
    //some magic... 
    $this->layout = 'dummyfolder\dummy_layout_name'; 
} 

裏面的_renderChart的函數的視圖我有一個JavaScript代碼,通過AJAX保存圖表的圖像作爲.png在服務器上。但是,當調用兩次$this->renderChart()時,僅渲染它的最後一次發生並且只保存一個圖像而不是兩個。

+3

該錯誤可能是內部「一些神奇......」,這將是有益的,包括。 – Oldskool

+0

當使用ajax返回響應時,爲什麼不把不同的圖表放在不同的div中? – cartina

回答

0

嗯,也許是因爲你連續調用'this'的函數。那麼這意味着$這總是最後一次調用。如何初始化調用變量,然後返回變量。事情是這樣的:

$var1 = $this->_renderChart(156); 
$var2 = $this->_renderChart(153); 

return array($var1, $var2); 

編輯:

$array = array("156", "153"); 
$this->_renderChart($array); 

,然後是這樣的:

function _renderChart($chart_id = null){ 
    if($chart_id == null) 
     return false; 
    foreach($chart_id as $key => $value) { 
     //some magic... 
    } 
    $this->layout = 'dummyfolder\dummy_layout_name'; 
} 
+0

好的,當我運行你的代碼時,我得到了相同的結果。 – user197483

+0

爲什麼在另一個函數中運行renderChart函數? – art2

+0

它也可能是有用的,看看你的代碼的'魔術'部分是什麼? – art2