我遇到了以下问题: 我使用来自Magento和标准模板的纯PHP在adminhtml区域创建了一个Fom。 这一切都按预期工作,但我无法动态添加和删除字段,我需要Javascript和我自己的phtml文件。
我的想法现在只是包含一个在表单末尾使用自定义模板的子块。
到目前为止,我添加了
$cblock =$this->getLayout()
->createBlock('netcon_konmod/adminhtml_caps_edit_mat')
->setTemplate('netcon_konmod_mat.phtml');
$this->_addContent($this->getLayout()
->createBlock('netcon_konmod/adminhtml_caps_edit')->setChild($cblock));
到我的控制器,创建了一个空的Netcon_Konmod_Block_Adminhtml_Caps_Edit_Mat类,扩展了Mage_Adminhtml_Block_Widget
并在... / template / netcon / konmod /
中创建模板文件mat.phtml我也有我的konmod.xml更新我的布局,其中包括
<adminhtml_caps_edit>
<reference name="content">
<block type="netcon_konmod/adminhtml_caps_edit" name="netcon_konmod_caps_edit">
<block type="netcon_konmod/adminhtml_caps_edit_mat" name="netcon_konmod_caps_mat" template="netcon_konmod_mat.phtml" />
</block>
</reference>
</adminhtml_caps_edit>
我对Magento很新,直到现在我才发现通过从父块的现有phtml文件调用getChildHtml来包含子块的方法。 但是,由于我使用form和fieldset方法完全创建了我的表单,因此我没有自己的phtml文件可以包含该调用。
我现在设置它的方式,它正常显示表单,但不包括子块。
如果能够做到这一点,我们将不胜感激任何帮助,我希望避免将整个表格重新编码为模板。
答案 0 :(得分:1)
尝试
$childBlock = $this->getLayout()
->createBlock('konmod/adminhtml_caps_edit_mat')
->setTemplate('netcon_konmod_mat.phtml');
$this->_addContent($this->getLayout()
->createBlock('konmod/adminhtml_caps_edit')
//->setTemplate('netcon_konmod_mat.phtml')
->append($childBlock));