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

How to submit the value of a disabled form field?

这个页面实际上是一个用户无法更改任何内容的预览,他已经给出 before.I 已经尝试了下面的代码,

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'
        )
    ));

此处字段已禁用,但它正在向 database.I 发送空值 我正在尝试发送用户已经使用过的实际值 selected.How 我可以这样做吗?

这就是 HTML 的工作方式,禁用元素的值不会被发送。

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

隐藏字段应该与实际字段同名,并且应该放在之前实际字段,这样隐藏值只会在以下情况下发送以下元素已禁用。

echo $this->Form->hidden('exchange_type');
echo $this->Form->input('exchange_type', array(
    'disabled' => true,
    // ...
));

这将为隐藏输入和 select 输入获取先前发布的值,并且隐藏输入将是可提交的。

另见 Cookbook > Helpers > FormHelper > FormHelper::hidden()