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を追加できると思ったんですが、どうもダメです。

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

関連記事

no image

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

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

hasOne アソシエーション

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

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

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

RSSフィードの取得

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

checkボックスを実装

selectボックスに引き続いてcheckボックスの実装方法をおさらいしてみます。 コードは、CakePHP 2と1.3両方で実装可能です。デモ モデルは、こちらも以下 CREATE TA

CakePHP 2.x インストール

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

(メール・URL・電話・郵便・IP) データ バリデーション

今回は、プロフィール情報に使用されるデータに絞ったバリデーションルールです。 バリデーションルール 以下の5つのバリデーションルールがコアに用意されています。 email メールアドレス

入力文字列の長さ(文字数)をバリデーション

CakePHP 2には、コアバリデーションに文字列の長さを検証する関数が用意されています。 文字列長(コア)バリデーション minLength - 最小文字数以上であること maxLengt

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

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

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

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

Message

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

*

PAGE TOP ↑