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ボックスと同じです。
関連記事
-
DebugKitを導入
定番のブログチュートリアルをこなして、定番のDebugKitを導入してみました。 2.3からはCakePHPインストール直後に以下のように導入を推奨するような警告メッセージが表示されるようになりまし
-
ログローテーション
CakePHP 2.xではbootstrap.php内にあらかじめアプリケーションログの設定が書かれています。2.xで日付ごとにログファイルが切り替わるよう設定してみました。 日ごとにログを切り替え
-
radioボタンを実装
Radioボタンの実装は、セレクトボックスとほぼ同じです。 個人的にはラジオボタンをすすんで使用することは少ないのですが、2択くらいの選択肢であれば非常に便利ですよね。 今回は、その実装方法 デモ
-
コントローラ内でバリデーション処理を呼び出す
CakePHPでは、saveメソッドの際にバリデーション処理も自動で行われますが、save処理と切り離してバリデーションを行うこともできます。このときは、save時と若干異なる処理体系になります。
-
ユーザ登録(仮登録・メール・本登録)
以前1.3版で投稿した「ユーザ登録」処理の2.x版を作成しました。フローは同じで以下のようにします。 1. メールアドレス・パスワードでユーザ登録 2. この時点では仮登録として、本登録用のU
-
パス定数と変更方法やURLの取得
CakePHPは基本的にはディレクトリそのまま配置することで構築が可能ではありますが、設定パスを変更することでセキュリティに考慮した構成にすることや運用性をもたせたものにすることが可能になります。
-
SQLクエリーをログに出力する
SQLのクエリーをデバッグするには、Debug Kitを使用すればできますが、デバッグログと一緒に出したいのでやり方を調査してみました。 別々のログやビューでみるのもいいですが、秒単位で実行される処
-
Js/Cssファイルの読み込みや出力する方法
CakePHPのHTMLヘルパーにはjsファイルやcssファイルを読み込むためのメソッドが用意されています。ファイルを読み込むのに加えて、出力先を複数指定できるようになっています。 また、インライン
-
Jsヘルパーを使用してAjax更新
更新処理でページ遷移を伴う場合、ページ全体をレスポンスするのに対して、Ajax処理ではページの一部のレスポンスが可能となるためサーバからの通信量を抑えることが可能となります。デモ head
-
独自のバリデーションルールを作成
CakePHPで組み込みバリデーションルールをつくる方法は、正規表現を定義する方法と独自メソッドを定義する方法の2つがあるようです。 参考 Custom Validation Rules 正規
- 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ボックスを実装. […]