radioボタンを実装

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

モデルは、今回も以下

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`) )

実装方法

find('list')でfieldsに対して2項目設定します。1つ目がvalue、2つ目が実際に画面に表示される値が設定されます。規定値(初期値)を指定する場合は、単一の値でvalueを指定します。

// コントローラ
$this->set( 'list', $this->Prefecture->find( 'list', array( 
    'fields' => array( 'id', 'prefecture')
)));

// ビュー
echo $this->Form->input( 'prefecture', array( 
    'type' => 'radio', 
    'options' => $list,
    'value' => $value,        // 規定値(初期値)をvalueで指定
//  'between' => '<hr>',    // fieldsetのlegend要素と先頭のラジオボタンの間に入れる要素
//  'separator' => '<br />',  // 各ラジオボタンの間に挿入する要素
//  'legend' => false         // falseに設定するとfieldset要素を除去します
));

ラジオボタン横並び

// ビュー
echo $this->Form->input( 'prefecture', array( 
    'type' => 'radio', 
    'options' => $list,
    'value' => $value,            // 規定値(初期値)をvalueで指定
    'div' => 'radio-horizontal',  // divにclassを付与
    'style' => 'float:none;',     // input要素にfloat:none
));

ラジオボタンの親要素(div)にclassを付与して(ここではradio-horizontal)
あとは、labelにdisplay: inline-blockをつけるだけです。

input[type=radio] {
    margin:0px;
    width:20px;
}
.radio-horizontal label{
    display: inline-block;
}

ヘルパー内でlabelにclassやstyleを追加できると思ったんですが、どうもダメです。

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

関連記事

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

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

CakeEmailでメール送信(@gmail)

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

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

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

Markdown Plugin

「Markdown CakePHP Plugin」は、MarkDown書式をレンダリングしてくれるビューヘルパーです。MarkDownについて勉強しているうちに出会ったので試し打ちです。 ダウンロー

hasOne アソシエーション

hasOneアソシエーションはテーブル間で1つのレコードに対して他のテーブルに紐付くレコードが1つの場合にjoinする場合に使用します。 CakePHPのドキュメントにならってUserモデルとP

DebugKitを導入

定番のブログチュートリアルをこなして、定番のDebugKitを導入してみました。 2.3からはCakePHPインストール直後に以下のように導入を推奨するような警告メッセージが表示されるようになりまし

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

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

CakePHP インストール時エラーの対処

CakePHPインストール時に出くわすであろうエラーの原因と対処方法についてまとめてみました。前提として、WebサーバはApache、データベースはMySQLとしています。 Timezone未設

no image

HttpSocketを使用してリクエスト送信

CakePHPには、Webサービスへのリクエスト送信のためのHttpSocketクラスが用意されています。 HttpSocket get HTTP GETリクエストを発行します。デモ H

バリデーション前後に処理を追加できる「beforeValidate」「afterValidate」

CakePHPでは、「beforeValidate」「afterValidate」というバリデーション処理の前後で追加の処理を実装できるコールバック関数が用意されています。 beforeVali

Message

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

*

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

    PAGE TOP ↑