cakephpのチェックボックスでちょっとはまったのでメモ。
そもそも、$form->inputでチェックボックスを作っていたのが良かったのか悪かったのか・・・。
まずわからなかったのがcheckedの状態にどうするのか。
$form->inputではcheckedではなくselectedだった、それだけ・・・
結論から言うとselectedにすれば良かっただけでした。。。
inputを使った場合はselect扱いなので「selected」ということ。
[php]
$options=array(‘1’=>’ごはん’,’2’=>’おかず’,’3’=>’味噌汁’);
$selected=array(‘1′,’3’);
$formBase= $form->input(‘hoge’ ,array(
‘type’=>’select’ ,
‘div’ => ‘checkbox’,
‘multiple’ =>’checkbox’,
‘options’ => $options,
‘selected’ => $selected,
‘label’ => false
)
);
[/php]
何悩んでるんだろ・・・私は。
データの受け取りと確認画面
これは恥ずかしいのでコードは晒しませんが、結局のところビューもしくはコントローラで
ベタ打ちでコードを書いて対処しました。そもそも、チェックボックスに関しては配列でデータを
受け渡しするので、確認画面を挟むと扱いが少し面倒になるります(そう思うのは私だけ?)。
※ヘルパーで対処されている方もいらっしゃるようですのでそちらも参考にした方が良いかもしれません。
さらに、今回の案件では表示するフォームを管理ページで動的に設定&生成するようにしていた
あたりが混乱した原因の一つかもしれません。
というのも、DBのフィールドはtextに設定しておいて、チェックボックスの値は登録時にカンマ区切りの
テキストにして保存したり・・・頭が悪そうな処理ですが・・・。
初心者の私にはちょっと早かったかもしれません。。。