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ボックスと同じです。

  • このエントリーをはてなブックマークに追加

関連記事

RSSフィードの取得

コンロトーラ public function getrssfeed() { try { $newsItems = $this->Rss->read( 'http://

FormヘルパーのMagicOption (マジックオプション) 

Formヘルパーでは、「フィールド名」,「テーブルカラムのデータ型」もしくはモデルの「バリデーション設定」によりフォーム要素を決定したり、自動で属性を付与する「マジックオプション」と呼ばれるものがある

多言語サイト向けに翻訳ファイルを使って翻訳を行う

CakePHPには、翻訳をビヘイビアを使用する方法と翻訳ファイルを使用する方法の2つがあるそうです。(他にもあるのかな?) 今回は、翻訳ファイルを使用して言語の切り替えを行い、その言語設定をCook

バリデーションエラーメッセージの取得

CakePHP 2.xになってバリデーションエラー時に返却されるメッセージのデータ形式が変更になったようです。1.3系では、ひとつのフィールドに対して返却されるメッセージは一つのルールのみですが、2.

日付・時間のバリデーション

日付や時刻に関するバリデーションは以下のルールがビルトインされています。 date 日付 time 時刻 datetime 日時 (m:「月」を数字表記 / M:「月」を英語表記)

SQLクエリーをログに出力する

SQLのクエリーをデバッグするには、Debug Kitを使用すればできますが、デバッグログと一緒に出したいのでやり方を調査してみました。 別々のログやビューでみるのもいいですが、秒単位で実行される処

アップロードファイルのバリデーションルール

CakePHP 2.2や2.3になってファイルアップロードに対するルールがコアバリデーションに追加されているようで、まとめてみました。 コアバリデーション 関連しそうなルールは以下の4つの

CakeEmailでメール送信(@gmail)

CakePHP 2になって追加されたクラスCakeEmailがシンプルに使えます。これを使用してメール送信を行う処理を実装してみました。 CakeEmailクラスの読み込み /app/Config

Formヘルパーのinputタグのdiv/labelなどの設定

Formヘルパーのinputではデフォルトでは以下のようにdivで囲われて、labelが付与されて出力されます。 CSSのフレームワークなどであらかじめ決まったスタイルがある場合に便利に作られていま

複数ファイルアップロードフォーム

CakePHP 2.0からはHTML5が標準でサポートとなり、複数ファイルアップロードのためのフォーム記述が容易になりました。 View (ビュー) 配列 Array (

Comment

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

PAGE TOP ↑