代码如下 |
复制代码 |
//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' => 'Email To Customer if selected'
));
|
但是无论如何调整代码,在控制器中获取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,具体如下:
代码如下 |
复制代码 |
getBlockHtml('formkey')?>
|
生成代码:
magento这样做应该也是为了保证提交的表单数据的安全性。