【www.bbyears.com--magento】
代码如下
//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这样做应该也是为了保证提交的表单数据的安全性。