如何提交已禁用的表单字段的值?

时间:2015-06-05 09:13:21

标签: forms cakephp disabled-input

此页面实际上是用户无法更改任何内容的预览,这是他之前提供过的。我尝试了以下代码,

echo $this->Form->input('exchange_type', array(
        'disabled' => 'disabled',
        'empty'   => '--Please Select--',
        'options' => array(
            '6' => 'POINT_TO_PRODUCT',
            '7' => 'POINT_TO_GIFT',
            '2' => 'POINT_TO_GAME'
        )
    ));

此处字段已禁用但它向数据库发送空值。我正在尝试发送已选择用户的实际值。我该怎么做?

1 个答案:

答案 0 :(得分:1)

HTML的工作方式,未发送已禁用元素的值。

你可以做的是使用一个隐藏字段,它是表单助手在使用例如复选框时自动执行的操作,以确保始终发送一个值,因为未选中的复选框可以不提交任何价值,就像禁用输入一样。

隐藏字段应与实际字段具有相同的名称,并且应将放在实际字段之前,这样只有在禁用以下元素的情况下才会发送隐藏值。

SELECT distinct substring_index(`email_id`, '@', -1) as domains, COUNT(*)
FROM user_login
GROUP BY substring_index(`email_id`, '@', -1);

这将获取隐藏输入和选择输入的先前POSTed值,隐藏输入将是可提交的。

另请参阅 Cookbook > Helpers > FormHelper > FormHelper::hidden()