情况
我正在处理一个大型表单,该表单已分成几个选项卡,既可以对某种字段进行分组,也可以使填写更容易。使用 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();
?>
假设用户在“Tab #4”时提交了表单。当我debug($this->data);
在 myBriefingsController
时,这就是我得到的:
/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 没有任何问题(已经以多种方式对其进行了测试),真正的问题是在表单提交后重新填充此字段。任何帮助深表感谢。