CakePHPでcheckbox

By | 2015/03/19

複数選択させるチェックBOXを出したいとき、並べるだけなら’type’=>’select’, ‘multiple’=>’checkbox’
としてセレクトタグのように指定する方法がある。

でも、個別のinputタグを自由に配置したいなら、’type’=>’checkbox’を複数書くしかない。

<input type="checkbox" name="id[]" value="1" checked>1
<input type="checkbox" name="id[]" value="2">2
<input type="checkbox" name="id[]" value="3">3

と書きたいときは、

echo $this->Form->input('id.', array('type'=>'checkbox', value=1, checked=@in_array(1, $this->request->data['id']));
echo $this->Form->input('id.', array('type'=>'checkbox', value=2, checked=@in_array(2, $this->request->data['id']));
echo $this->Form->input('id.', array('type'=>'checkbox', value=3, checked=@in_array(3, $this->request->data['id']));

ポイントは
1. nameの最後にピリオドを付けて配列[]としてのnameを展開させる事。
2. そしてrequest->dataに配列で入るのでcheckboxの標準処理ではチェックが立たないので、in_arrayで値が選択済みか調べる事。
3. また、初期状態ではrequest->dataがセットされなくてNoticeが出るので@で警告抑制する事。


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

* Copy This Password *

* Type Or Paste Password Here *