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

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

関連記事

Jsヘルパーを使用してAjax更新

更新処理でページ遷移を伴う場合、ページ全体をレスポンスするのに対して、Ajax処理ではページの一部のレスポンスが可能となるためサーバからの通信量を抑えることが可能となります。デモ head

コントローラ内でバリデーション処理を呼び出す

CakePHPでは、saveメソッドの際にバリデーション処理も自動で行われますが、save処理と切り離してバリデーションを行うこともできます。このときは、save時と若干異なる処理体系になります。

パス定数と変更方法やURLの取得

CakePHPは基本的にはディレクトリそのまま配置することで構築が可能ではありますが、設定パスを変更することでセキュリティに考慮した構成にすることや運用性をもたせたものにすることが可能になります。

CakePHP 2.x インストール

現在まで私が商用・非商用にリリースしているCakePHPアプリケーションは全て1.3.xベースで作成しています。 まだまだロードマップ的には大丈夫そうですが、お客さん向けに納品しているアプリケーショ

CakeEmailでメール送信(@gmail)

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

selectボックスを実装

今まで、selectボックスのgroupを作成するのにSet::Combineを使用していましたが、意外と簡単にできることに気付いてしまったので、ご紹介。(自分だけ知らなかったことに気付いた と言った

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

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

no image

radioボタンを実装

Radioボタンの実装は、セレクトボックスとほぼ同じです。 個人的にはラジオボタンをすすんで使用することは少ないのですが、2択くらいの選択肢であれば非常に便利ですよね。 今回は、その実装方法 デモ

Js/Cssファイルの読み込みや出力する方法

CakePHPのHTMLヘルパーにはjsファイルやcssファイルを読み込むためのメソッドが用意されています。ファイルを読み込むのに加えて、出力先を複数指定できるようになっています。 また、インライン

ユーザ登録(仮登録・メール・本登録)

以前1.3版で投稿した「ユーザ登録」処理の2.x版を作成しました。フローは同じで以下のようにします。 1. メールアドレス・パスワードでユーザ登録 2. この時点では仮登録として、本登録用のU

Comment

CakePHP 2.x | checkボックスを実装 | Web memo へ返信する コメントをキャンセル

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

*

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

    PAGE TOP ↑