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' => '<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-07-30 09:16:03

Magento二次开发表单域命名冲突的解决方法的相关文章

在J2EE项目中使用IBM Forms来开发表单页面

如果用 HTML/JSP 等普通的技术来开发这些表单,那么对于开发者来说是一个繁重的任务,对http://www.aliyun.com/zixun/aggregation/17326.html">存储数据用的数据库设计也要求很高.因此,这里介绍了如何在 J2EE 中使用 IBM Forms 开发的表单,在表单中做界面设计,数据校验和存储,让复杂的表单变得简单灵活易用. IBM Forms 产品包括 IBM Forms Designer, IBM Forms Viewer 和 IBM For

电脑F盘打不开、无法访问的4个解决方法

电脑F盘打不开.无法访问的4个解决方法   F盘无法访问 要电脑F盘打不开.无法访问的原因与解决方法包括: 一.安全模式下杀毒; 二.清理注册表; 三.修复驱动器关联; 四.删除autorun.inf文件; 电脑F盘打不开.无法访问的原因与解决方法一:安全模式下杀毒 安全模式 1,在安全模式下进行杀毒,执行方法,开机过了logon画面之后,立即不断点按F8键,直到出现高级模式窗口,选择其中的安全模式,如下图,在安全模式下,进行全盘杀毒. 电脑F盘打不开.无法访问的原因与解决方法二:清理注册表 1

ios-关于Objective-C命名冲突的解决办法

问题描述 关于Objective-C命名冲突的解决办法 Objective-C没有命名空间,对于经常出现的命名冲突,该怎么解决?如果是第三方库命名冲突呢? 解决方案 为了避免 命名 冲突 object c 一面 一般都是 添加前缀 比如系统sdk里面的 NS UI AB ... 如果是 第三方 库 中 的 命名 冲突 的话 开源的可以 自己 改改 ,否责 ,换个 库吧 个人感觉 无解 解决方案二: 自己的与第三方冲突?可以加上三个大写字母前缀,因为苹果占用了两个的.然后如果第三方与第三方冲突需要

eclipse 新建项目的时候,命名冲突检查的方法

问题描述 我想知道Eclipse提供的向导插件模板,或是新建工程向导中,进行命名冲突检查的方法是什么?该方法是否可改写?改写需要注意什么?大神们若能帮小妹解决,不胜感激 解决方案 解决方案二:想法非常怪异啊,除非Eclipese开源,或者本身它提供类似的接口.解决方案三:引用1楼daxuejianku的回复: 想法非常怪异啊,除非Eclipese开源,或者本身它提供类似的接口. Eclipse的确是开源的啊,就是不知道他这个接口是什么,要是能知道就好了

跨域请求的完美解决方法(JSONP, CORS)_基础知识

一个众所周知的问题,Ajax直接请求普通文件存在跨域无权限访问的问题.解决方法有JSONP,Flash等等. JSONP 我们发现,Web页面上调用js文件时不受是否跨域的影响,凡是拥有"src"这个属性的标签都拥有跨域的能力,比如<script>.<img>.<iframe>.那就是说如果要跨域访问数据,就服务端只能把数据放在js格式的文件里.恰巧我们知道JSON可以简洁的描述复杂数据,而且JSON还被js原生支持,所以在客户端几乎可以随心所欲的处

java表单提交中文乱码的解决方法_java

本文实例为大家分享了java表单提交中文乱码的解决方法,供大家参考,具体内容如下 主页index.xml <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <html> <head> <title>servlet演示</title> </head> <body> <h2&

Ajax提交表单页面刷新很快的解决方法

注:使用ajax 提交表单时 type类型最好不用submit 用button合适 <form> <div class="col-md-9 col-sm-9 col-xs-12 col-md-offset-3"> <input type="button" class="btn btn-info" value="重置" onclick="return resetaa()">

ThinkPHP表单令牌错误的相关解决方法分析

本文分析了ThinkPHP表单令牌错误的相关解决方法.分享给大家供大家参考,具体如下: 今天在用ThinkPHP做程序的时候,以前用create创建数据的时候,出现了错误提示"表单令牌错误",然后各种百度各种谷歌,得到的网上解答给出了以下的建议 1.清缓存: 用了,我把所有的Cache下的文件都删掉了,并将~app.php和~runtime.php两个文件同时都删掉了,但是没有效果. 2.将TOKEN_ON参数设置为FALSE: 试过了,但是也不行,虽然不提示表单令牌错误了,但是添加到

Windows开关机没声音的原因及解决方法

前段时间,有很多朋友问起"所有设置都正确,就是开关机没有声音"的问题.本人经过多次试验, 终于找到了造成开关机没有声音的原因及解决办法: 一.故障原因 由于使用"windows优化大师"的优化功能时,在"优化windows声音和音频配置"的选项前面打了勾 ,导致了开关机没有声音. 二.解决办法 办法A :使用"windows优化大师"的恢复功能,"把文件系统的各项属性恢复为windows默认值", 重启系统