状況
ある種のフィールドをグループ化し、入力を容易にするために、いくつかのタブに分割された大きなフォームに取り組んでいます。タブは 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に問題はありません(すでにいくつかの方法でテストしています)。実際の問題は、フォーム送信後にこのフィールドに値が入力されることです。どんな助けでも大歓迎です。