2011-08-11 61 views
2

例如:一個名爲ajaxhandlerController 控制器可以接收若干AJAX請求類型, 每種類型應該有不同的塊中的佈局的xml的Magento:如何動態改變默認模板在控制器

在佈局

爲ajaxhandler我的索引會寫

<mymodule_ajaxhandler_index> 
     <block some block></block> 
    </mymodule_ajaxhandler_index> 

如何從指數變化,以節省例如,如果有$請求[「型」] ==「保存」;所以我可以使用

<mymodule_ajaxhandler_save> 

回答

6

我會忘記佈局XML。簡單地實例化Core_Block_Html_Template並根據接收到的請求類型將正確的模板分配給使用setTemplate方法。

$html = $this->getLayout() 
     ->createBlock('core/template') 
     ->setTemplate('your/template.phtml') 
     ->toHtml(); 
+0

我試圖做到這一點,但使用它並沒有通過代碼的模塊/塊鏈。所以結果是一個空的模板塊。同時使用layout.xml中的內容工作正常,我爲保存創建了一個新的控制器,並正確地將模板拉下。有什麼建議麼? –

+0

你有沒有呼應$ html赫赫:) –

+0

是的,當然我做過(;我已經嘗試過這種方法,然後再回答,我的意思是空塊,我的意思是從數據中清空,我希望它顯示的是「你選擇XX「,當我使用相應的佈局xml時,它顯示正確,當我使用create block時,它只是顯示沒有數據的塊,看起來它不是使用塊的父級方法,我需要進一步調查 –