情况
我正在处理一个大表单,该表单已拆分为多个选项卡,既可以对某种字段进行分组,又可以使填充更容易。选项卡使用JavaScript(jQuery(激活,表单完整提交(一次提交所有选项卡,即使有空白字段(。
我正在尝试提交一个hidden
字段以及表单以保留用户的当前选项卡。这样,当提交表单时,数据将被保存,用户将返回到以前的相同选项卡。此字段不附加到任何模型,因为它只是一个帮助程序。
问题+我试过什么
该字段由 jquery 正确填充为用户切换选项卡,并与表单一起提交。这是我所做的:
<?php
echo $this->Form->create('Briefing', array('enctype' => 'multipart/form-data'));
// This is my aux field, which is populated via jQuery as user switch tabs
echo $this->Form->hidden('tab-active', array('name' => 'tab-active', 'id' => 'tab-active'));
echo $this->Form->input('title');
echo $this->Form->submit('Save', array('class' => 'btn btn-success'));
echo $this->Form->end();
?>
假设用户在"选项卡#4"处提交了表单。当我debug($this->data);
我的BriefingsController
时,这就是我得到的:
/app/Controller/BriefingsController.php (line 133)
array(
'tab-active' => 'tab-4',
'Briefing' => array(
'title' => 'My test title'
)
)
因此,我的控制器接收tab-active
和Briefing.title
字段的表单数据,但是当提交后加载表单时,只有模型字段填充了提交的数据,并且tab-active
带有空值。CakePHP 不会自动填充我的非模型附加字段的值。
对此有什么想法吗?这是默认的 CakePHP 行为,还是我可以做些什么来使其工作(自动填充(?我对jQuery没有问题(已经以多种方式对其进行了测试(,真正的问题是在表单提交后重新填充此字段。任何帮助都非常感谢。
CakePHP 用表单模型的数据填充表单。因此,如果您为"简报"创建创建一个表单,CakePHP 将查看$this->data['简报'] 数组,并填充与此数组中存在的字段匹配的输入。因此,由于隐藏的"选项卡活动"字段存在于"简报"表单创建中,CakePHP 希望您的"简报"模型具有"选项卡活动"属性。
所以我的猜测是你的$this>数据数组应该是:
array(
'Briefing' => array(
'tab-active' => 'tab-4',
'title' => 'My test title'
)
)