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を追加できると思ったんですが、どうもダメです。
関連記事
-
FullCalendarを使用してカレンダーアプリケーション
カレンダーアプリケーションを作成するため、カレンダー表示できるプラグインを探索して出会ったFullcalendarを試してみました。シンプルに使用できる上に、オプションがかなり豊富です。ダウンロード
-
CakePHP 2.x インストール
現在まで私が商用・非商用にリリースしているCakePHPアプリケーションは全て1.3.xベースで作成しています。 まだまだロードマップ的には大丈夫そうですが、お客さん向けに納品しているアプリケーショ
-
多言語サイト向けに翻訳ファイルを使って翻訳を行う
CakePHPには、翻訳をビヘイビアを使用する方法と翻訳ファイルを使用する方法の2つがあるそうです。(他にもあるのかな?) 今回は、翻訳ファイルを使用して言語の切り替えを行い、その言語設定をCook
-
CakePHP インストール時エラーの対処
CakePHPインストール時に出くわすであろうエラーの原因と対処方法についてまとめてみました。前提として、WebサーバはApache、データベースはMySQLとしています。 Timezone未設
-
ユーザ登録(仮登録・メール・本登録)
以前1.3版で投稿した「ユーザ登録」処理の2.x版を作成しました。フローは同じで以下のようにします。 1. メールアドレス・パスワードでユーザ登録 2. この時点では仮登録として、本登録用のU
-
checkボックスを実装
selectボックスに引き続いてcheckボックスの実装方法をおさらいしてみます。 コードは、CakePHP 2と1.3両方で実装可能です。デモ モデルは、こちらも以下 CREATE TA
-
Jsヘルパーを使用してAjax更新
更新処理でページ遷移を伴う場合、ページ全体をレスポンスするのに対して、Ajax処理ではページの一部のレスポンスが可能となるためサーバからの通信量を抑えることが可能となります。デモ head
-
selectボックスを実装
今まで、selectボックスのgroupを作成するのにSet::Combineを使用していましたが、意外と簡単にできることに気付いてしまったので、ご紹介。(自分だけ知らなかったことに気付いた と言った
-
RSSフィードの取得
コンロトーラ public function getrssfeed() { try { $newsItems = $this->Rss->read( 'http://
-
DebugKitを導入
定番のブログチュートリアルをこなして、定番のDebugKitを導入してみました。 2.3からはCakePHPインストール直後に以下のように導入を推奨するような警告メッセージが表示されるようになりまし
- PREV
- 「jqPlot」 カスタマイズ
- NEXT
- ウィジェット関連のカスタマイズ・プラグイン