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を追加できると思ったんですが、どうもダメです。
関連記事
-  
                            
                              - 
              
FormヘルパーのMagicOption (マジックオプション)
Formヘルパーでは、「フィールド名」,「テーブルカラムのデータ型」もしくはモデルの「バリデーション設定」によりフォーム要素を決定したり、自動で属性を付与する「マジックオプション」と呼ばれるものがある
 
-  
                            
                              - 
              
SQLクエリーをログに出力する
SQLのクエリーをデバッグするには、Debug Kitを使用すればできますが、デバッグログと一緒に出したいのでやり方を調査してみました。 別々のログやビューでみるのもいいですが、秒単位で実行される処
 
-  
                            
                              - 
              
コントローラ内でバリデーション処理を呼び出す
CakePHPでは、saveメソッドの際にバリデーション処理も自動で行われますが、save処理と切り離してバリデーションを行うこともできます。このときは、save時と若干異なる処理体系になります。
 
-  
                            
                              - 
              
日付・時間のバリデーション
日付や時刻に関するバリデーションは以下のルールがビルトインされています。 date 日付 time 時刻 datetime 日時 (m:「月」を数字表記 / M:「月」を英語表記)
 
-  
                            
                              - 
              
バリデーション前後に処理を追加できる「beforeValidate」「afterValidate」
CakePHPでは、「beforeValidate」「afterValidate」というバリデーション処理の前後で追加の処理を実装できるコールバック関数が用意されています。 beforeVali
 
-  
                            
                              - 
              
Syslogログエンジン
2.4から「Syslog」ログクラスが追加され、簡単にSyslogを使用できるようになりました。 CakePHP側の設定はbootstrap.php内のCakeLogコンフィグのengineを'Sy
 
-  
                            
                              - 
              
Blowfishを使用してハッシュ化する
使用方法 Blowfishを採用してハッシュ化を行う場合、Securityクラスのhashメソッドを呼び出します。第2引数に'blowfish'を指定し、第3引数を指定しないもしくはfalseにしま
 
-  
                            
                              - 
              
Cookieログイン
今回は、ログイン画面でよくみかけるクッキーログインの機能を使ってみます。 CakePHPには、Cookieコンポーネントがあります。(PHPのsetcookieメソッドのラッパー)メソッドはwr
 
-  
                            
                              - 
              
checkボックスを実装
selectボックスに引き続いてcheckボックスの実装方法をおさらいしてみます。 コードは、CakePHP 2と1.3両方で実装可能です。デモ モデルは、こちらも以下 CREATE TA
 
-  
                            
                              - 
              
Jsヘルパーを使用してAjax更新
更新処理でページ遷移を伴う場合、ページ全体をレスポンスするのに対して、Ajax処理ではページの一部のレスポンスが可能となるためサーバからの通信量を抑えることが可能となります。デモ head
 
- PREV
 - 「jqPlot」 カスタマイズ
 - NEXT
 - ウィジェット関連のカスタマイズ・プラグイン
 

