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

ログローテーション

CakePHP 2.xではbootstrap.php内にあらかじめアプリケーションログの設定が書かれています。2.xで日付ごとにログファイルが切り替わるよう設定してみました。 日ごとにログを切り替え

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

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

ネストしたリストを出力「nestedList」

DBやJSONからデータを取得して、そのデータをもとにメニュー表示などネストしたリストを出力させたい場合に「nestedList」が便利です。 ヘルパーに渡すデータは連想配列である必要があります。(

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

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

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

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

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

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

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

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

selectボックスを実装

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

数値系バリデーション

CakePHP 2になっていくつか数値用バリデーションルールが追加されています。 数値用 (コア)バリデーション decimal - 十進数であること numeric - 数値であること

Message

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

*

PAGE TOP ↑