Quantcast
Channel: 技術メモ –技術屋ネオビットの覚え書き
Viewing all articles
Browse latest Browse all 25

CakePHPでcheckbox

$
0
0

複数選択させるチェック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が出るので@で警告抑制する事。


Viewing all articles
Browse latest Browse all 25

Trending Articles