checkボックスを実装
selectボックスに引き続いてcheckボックスの実装方法をおさらいしてみます。
コードは、CakePHP 2と1.3両方で実装可能です。デモ
モデルは、こちらも以下
CREATE TABLE IF NOT EXISTS `prefectures` (
`id` INT NOT NULL AUTO_INCREMENT, -- id
`prefecture` VARCHAR(8) NOT NULL, -- 都道府県
`area` VARCHAR(8) NOT NULL, -- 地方
PRIMARY KEY (`id`) )
単体でon/offするcheckボックス
規定値を指定する場合は、checkedに指定します。チェックの場合はtrue(もしくは1)、チェックしない場合はfalse(もしくは0)を。
// ビュー
echo $this->Form->input( 'yesno', array(
'type' => 'checkbox',
// 'checked' => true, // 初期表示で選択させる場合
'label' => '選ぶ', // チェックボックスのラベル
// 'div' => false // div親要素の有無(true/false)
));
classなどの設定はこちらを
Formヘルパーのinputタグのdiv/labelなどの設定
複数選択できるcheckボックス
単体のcheckボックスを並べてそれぞれのデータをコントローラ側で処理するのもアリですが、データを配列で受け取るため一括で定義して使用する機会もあると思います。
'multiple' => 'checkbox'と指定することで複数選択可能なチェックボックスを実装することができます。その部分以外は、selectボックスと同じです。(selectボックス)
// コントローラ
$this->set( 'select1', $this->Prefecture->find( 'list', array(
'fields' => array( 'id', 'prefecture')
)));
// ビュー
echo $this->Form->input( 'prefecture', array(
'type' => 'select',
'multiple'=> 'checkbox',
'options' => $select1,
// 'selected' => $selected // 規定値は、valueを配列にしたもの
// 'div' => false // div親要素の有無(true/false)
));
グループ化
'multiple'=> 'checkbox'を変更する以外はselectボックスと同じです。
関連記事
-
-
多言語サイト向けに翻訳ファイルを使って翻訳を行う
CakePHPには、翻訳をビヘイビアを使用する方法と翻訳ファイルを使用する方法の2つがあるそうです。(他にもあるのかな?) 今回は、翻訳ファイルを使用して言語の切り替えを行い、その言語設定をCook
-
-
コントローラ内でバリデーション処理を呼び出す
CakePHPでは、saveメソッドの際にバリデーション処理も自動で行われますが、save処理と切り離してバリデーションを行うこともできます。このときは、save時と若干異なる処理体系になります。
-
-
Jsヘルパーを使用してAjax更新
更新処理でページ遷移を伴う場合、ページ全体をレスポンスするのに対して、Ajax処理ではページの一部のレスポンスが可能となるためサーバからの通信量を抑えることが可能となります。デモ head
-
-
(メール・URL・電話・郵便・IP) データ バリデーション
今回は、プロフィール情報に使用されるデータに絞ったバリデーションルールです。 バリデーションルール 以下の5つのバリデーションルールがコアに用意されています。 email メールアドレス
-
-
FullCalendarを使用してカレンダーアプリケーション
カレンダーアプリケーションを作成するため、カレンダー表示できるプラグインを探索して出会ったFullcalendarを試してみました。シンプルに使用できる上に、オプションがかなり豊富です。ダウンロード
-
-
アップロードファイルのバリデーションルール
CakePHP 2.2や2.3になってファイルアップロードに対するルールがコアバリデーションに追加されているようで、まとめてみました。 コアバリデーション 関連しそうなルールは以下の4つの
-
-
selectボックスを実装
今まで、selectボックスのgroupを作成するのにSet::Combineを使用していましたが、意外と簡単にできることに気付いてしまったので、ご紹介。(自分だけ知らなかったことに気付いた と言った
-
-
DebugKitを導入
定番のブログチュートリアルをこなして、定番のDebugKitを導入してみました。 2.3からはCakePHPインストール直後に以下のように導入を推奨するような警告メッセージが表示されるようになりまし
-
-
CakePHP 2.x インストール
現在まで私が商用・非商用にリリースしているCakePHPアプリケーションは全て1.3.xベースで作成しています。 まだまだロードマップ的には大丈夫そうですが、お客さん向けに納品しているアプリケーショ
-
-
hasOne アソシエーション
hasOneアソシエーションはテーブル間で1つのレコードに対して他のテーブルに紐付くレコードが1つの場合にjoinする場合に使用します。 CakePHPのドキュメントにならってUserモデルとP
- PREV
- CakeEmailでメール送信(@gmail)
- NEXT
- テーマ ブックマーク 2013


Comment
[…] の2通りがありますが、(1)は、$this->Form->inputのoptionで、 ‘multiple’=>’checkbox’ ‘options’=> array(‘いちご’,'レモン’,'バナナ’) を入れる形でできるようです。 参考-> http://kwski.net/cakephp-2-x/1096/ […]
checkボックスを実装 #cakephp #form #trick876
http://t.co/wlsLjxvYNL
[…] 引用元: CakePHP 2.x | checkボックスを実装. […]