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つがあるようです。 参考 Custom Validation Rules 正規
-
-
バリデーションエラーメッセージの取得
CakePHP 2.xになってバリデーションエラー時に返却されるメッセージのデータ形式が変更になったようです。1.3系では、ひとつのフィールドに対して返却されるメッセージは一つのルールのみですが、2.
-
-
FormヘルパーのMagicOption (マジックオプション)
Formヘルパーでは、「フィールド名」,「テーブルカラムのデータ型」もしくはモデルの「バリデーション設定」によりフォーム要素を決定したり、自動で属性を付与する「マジックオプション」と呼ばれるものがある
-
-
SQLクエリーをログに出力する
SQLのクエリーをデバッグするには、Debug Kitを使用すればできますが、デバッグログと一緒に出したいのでやり方を調査してみました。 別々のログやビューでみるのもいいですが、秒単位で実行される処
-
-
ログインに追加の条件を付与する「scope」
ユーザ登録では、仮登録処理(status=1)から送付したメール内のリンクをクリックしてもらい本登録(status=0)を行ってもらう実装をしました。仮登録の状態ではログインできないように実装するには
-
-
ログローテーション
CakePHP 2.xではbootstrap.php内にあらかじめアプリケーションログの設定が書かれています。2.xで日付ごとにログファイルが切り替わるよう設定してみました。 日ごとにログを切り替え
-
-
ユーザ登録(仮登録・メール・本登録)
以前1.3版で投稿した「ユーザ登録」処理の2.x版を作成しました。フローは同じで以下のようにします。 1. メールアドレス・パスワードでユーザ登録 2. この時点では仮登録として、本登録用のU
-
-
ネストしたリストを出力「nestedList」
DBやJSONからデータを取得して、そのデータをもとにメニュー表示などネストしたリストを出力させたい場合に「nestedList」が便利です。 ヘルパーに渡すデータは連想配列である必要があります。(
-
-
Jsヘルパーを使用してAjax更新
更新処理でページ遷移を伴う場合、ページ全体をレスポンスするのに対して、Ajax処理ではページの一部のレスポンスが可能となるためサーバからの通信量を抑えることが可能となります。デモ head
-
-
Cookieログイン
今回は、ログイン画面でよくみかけるクッキーログインの機能を使ってみます。 CakePHPには、Cookieコンポーネントがあります。(PHPのsetcookieメソッドのラッパー)メソッドはwr
- 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ボックスを実装. […]