Life is Really Short, Have Your Life!!

ござ先輩の主に技術的なメモ

cakephp1.2でラジオボタンを初期選択させる方法

ぐぐっても情報が古いんで、自分でソース読んで調べた。簡単だった。ソースはcake/libs/view/helpers/form.phpね。大体890行目近辺。

<?php 
if (isset($attributes['value'])) {
	$value = $attributes['value'];
} else {
	$value =  $this->value($fieldName);
}
$out = array();

foreach ($options as $optValue => $optTitle) {
	$optionsHere = array('value' => $optValue);

		if (isset($value) && $optValue == $value) {
			$optionsHere['checked'] = 'checked';
		}

$form->radioの第3引数にvalueっていうKeyがセットされてたら、HTMLを吐く時にcheckしてやんよってことでした。

なので、

<?php 
   $selection = array("1"=>"男性","2"=>"女性");
   echo $form->radio("user.sex",$selection,array("legend"=>false,"separator"=>'  ','value' => '1'));
?>

これでおk。男性がチェックされて初期表示される。

イベント関係は全部第3引数のarrayに渡せばおk。"onclick"=>"showXXXX()"とかで。

cakephpは困ったらソースコードを見に行けば、たいていのことは理解できる。可愛いヤツだ。