代码如下 | 复制代码 |
//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>' )); |
但是无论如何调整代码,在控制器中获取post数据的时候,is_reply的值都为空。这个问题困扰了将近2个小时的时间,始终就是想不明白为什么为空。最终,发现在Tab2中,注意,这是一个Grid列表,也包含一个字段叫做is_reply,于是想是不是这里除了问题。
代码如下 | 复制代码 |
//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'), )); |
在把Grid中的is_reply删除之后,竟然发现传值成功了。这个经历真心的相当郁闷。因为两块是完全不相干的事情,却有赋值操作。这里做个记录,算是经验吧。
遇到个很纠结的问题,正常添加了一个表单,但是post提交数据的时候老提交不过去,get方式却可以,尝试了很久,后来又仔细看了magento相关表单的代码,才发现每个表单post进行数据提交的时候,都加了一个formkey,具体如下:
代码如下 | 复制代码 |
<?php echo $this->getBlockHtml('formkey')?> |
生成代码:
代码如下 | 复制代码 |
<input name="form_key" type="hidden" value="TXi0vgLAzYEKQUJW" /> |
magento这样做应该也是为了保证提交的表单数据的安全性。
时间: 2024-12-26 05:55:27