CakePHP

【CakePHP2】checkboxを作る際の個人的な作法

2015/01/12

checkboxを作る際は過去ログのようにすればできるのですが、リストが縦に並んだりと自分の欲しい形になってくれないので、以下のようにして横並びにしています。

面倒だけど、効果的。

縦並びにしたくない場合などの個人的にとっている手段です。
あまりオススメはしませんが(苦笑)

項目(マスタ)を配列で作成。

[php]
$mt_week = array(
1 => 'AM',
2 => 'PM',
3 => '月',
4 => '火',
5 => '水',
6 => '木',
7 => '金',
8 => '土',
);
[/php]

マスタ配列をforeachで回しつつ、checkboxを作成。

[php]
echo '

';
echo '

希望日(午前・午後 / 曜日)

';
echo '

';
foreach ( $mt_week AS $key => $val ) {
echo '";
}
echo '

';
echo '

';
[/php]

labelタグ部分、およびcheckbox書式のname部分が "[$key" で終わっていますが、わざとです。
CakePHPはこの書式で終わると、配列として認識してくれる(隠し?)機能を持っています。

上記コードで、以下のようになります。

checkbox_20131224

出来上がるHTMLコードはこんな感じ。
nameが三次元配列になっているのが、先ほど書いた "[$key" で終わっている部分です。
valueはそれぞれ、先のマスタ配列で指定した値になっているので、あとはコントローラーで好きに料理できます。

[html]

希望日(午前・午後 / 曜日)

[/html]

-CakePHP
-,