跨境电商
经验交流分享

Magento后台开发表单域命名冲突的问题

这个问题真心的纠结了一个下午,不注意的情况下很难能发现这样一个问题的存在。在Magento的后台开发中,经常用到的几个功能如Grid,Tab,Form等,如下图所示,在点击Grid的一个item进行编辑的时候,我们看到左侧有两个Tab,第一个Tab是包含的全部都是表单域,第二个Tab是一个Grid。

在第一个Tab中,我添加了一个名为is_reply的checkbox,用于让客户选择是否把回复通过email发送给咨询的访客。

[php]
//class Ruiwant_Consult_Block_Adminhtml_Consult_Index_Edit_Tabs_General extends Mage_Adminhtml_Block_Widget_Form
protected function _prepareForm()
{
$fieldset2->addField(‘is_reply’, ‘checkbox’, array(
‘label’     => Mage::helper(‘consult’)->__(‘Email To Customer’),
‘name’         => ‘is_reply’,
‘checked’    => true,
‘onclick’    => ‘this.value = this.checked ? 1 : 0;’,
‘after_element_html’ => ‘<small>Email To Customer if selected</small>’
));
[/php]

但是无论如何调整代码,在控制器中获取post数据的时候,is_reply的值都为空。这个问题困扰了将近2个小时的时间,始终就是想不明白为什么为空。最终,发现在Tab2中,注意,这是一个Grid列表,也包含一个字段叫做is_reply,于是想是不是这里除了问题。

[php]
//class Ruiwant_Consult_Block_Adminhtml_Consult_Index_Edit_Tabs_Answer extends Mage_Adminhtml_Block_Widget_Grid
protected function _prepareColumns()
{
$this->addColumn(‘is_reply’, array(
‘header’ => Mage::helper(‘consult’)->__(‘Email To Customer’),
‘index’ => ‘is_reply’,
‘type’      => ‘options’,
‘options’    => array(‘0’ => ‘Not Send’, ‘1’ => ‘Send’),
));
[/php]

在把Grid中的is_reply删除之后,竟然发现传值成功了。这个经历真心的相当郁闷。因为两块是完全不相干的事情,却有赋值操作。这里做个记录,算是经验吧。

赞(0)
未经允许不得转载:锐想 » Magento后台开发表单域命名冲突的问题
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

锐想电商 - 跨境电商经验交流分享

锐想无限