如何在Magento的admin html中为控制器创建自定义表单操作?

时间:2015-10-13 08:41:56

标签: forms magento magento-1.9 php adminhtml

我在admin html中创建了一个表单,但是它的操作无法正常工作,操作没有进入控制器。我的config.xml文件如下所示

<adminhtml>
        <menu>
            <customercare module="customercare">
                <title>Calls</title>
                <sort_order>100</sort_order>
                <children>
                    <customercare module="customercare">
                        <title>View Missed Calls</title>
                        <sort_order>0</sort_order>
                        <action>admin_customercare/adminhtml_missedcall</action>
                    </customercare>
                    <customercarecalllog module="customercare">
                        <title>View Call Logs</title>
                        <sort_order>1</sort_order>
                        <action>admin_customercare/adminhtml_calllog</action>
                    </customercarecalllog>                    
                </children>
            </customercare>
            <customer>
                    <children>
                            <customercarevirtualretialerrequest module="customercare">
                                    <title>Manage Virtaul Retailers</title>
                                    <sort_order>10</sort_order>
                                    <action>admin_customercare/adminhtml_virtualretialerrequest</action>
                            </customercarevirtualretialerrequest>
                    </children>
            </customer>

        </menu>
        <acl>
            <resources>
                <all>
                    <title>Allow Everything</title>
                </all>
                <admin>
                    <children>
                        <customercare translate="title" module="customercare">
                            <title>Calls</title>
                            <sort_order>1000</sort_order>
                            <children>
                                <customercare translate="title">
                                    <title>View Missed Calls</title>
                                </customercare>
                                <customercare translate="title">
                                    <title>Manage Missed Calls</title>
                                    <sort_order>0</sort_order>
                                </customercare>
                                <customercarecalllog translate="title">
                                    <title>View Call Logs</title>
                                    <sort_order>1</sort_order>
                                </customercarecalllog>

                            </children>
                        </customercare>                        
                    </children>
                    <customer>                                        
                            <children>                            
                                <virtualretialerrequest translate="title" module="customer">
                                    <title>Manage Virtual Retailers</title>
                                    <sort_order>10</sort_order>
                                </virtualretialerrequest>                            
                            </children>                                        
                    </customer>

                </admin>
            </resources>
        </acl>

我的控制器文件

<?php
class Suyati_Customercare_Adminhtml_VirtualretialerrequestController extends Mage_Adminhtml_Controller_Action 
{
    protected function _isAllowed()
    {
        return true;
    }

    public function indexAction()
    {

        $this->loadLayout(); 
        $block = $this->getLayout()->createBlock(
            "Mage_Core_Block_Template",
            "virtual-registration",
            array('template' => 'customercare/virtual_retailer_registration_admin_form.phtml')
        );
        $this->_addContent($block);
        $this->renderLayout();

    }

    public function postAction()
    {
        echo "hello"; die();
    }
}

位于此路径中的Phtml表单操作文件app / design / adminhtml / default / default / template / customercare / virtual_retailer_registration_admin_form.phtml

<form action="<?php echo Mage::helper("adminhtml")->getUrl("customercare/virtualretialerrequest/post"); ?>" id="retailerForm" method="post">
    <input type="hidden" name="form_key" value="<? echo $this->getFormKey(); ?>" />

当我尝试提交表单时,它将转到仪表板而不是控制器操作文件。请帮帮我。我只需要在控制器文件中获取帖子数据,并且需要向管理员发送电子邮件。

1 个答案:

答案 0 :(得分:3)

我认为表格密钥的问题 更改

<input type="hidden" name="form_key" value="<? echo $this->getFormKey(); ?>" />

<input type="hidden" name="form_key" value="<?php echo Mage::getSingleton('core/session')->getFormKey(); ?>" />