cakePHP1.3 multiple checkbox で id が重複する問題2015年12月10日

TOP  >  ブログ  >  cakePHP1.3 multiple checkbox で id が重複する問題

cakePHP1.3 multiple checkbox で id が重複する問題

cakeはver3が主流になりつつある今,どうしてもcakePHP1.3.21(私はドカポンと呼んでいる)を触らなくてはならなくなり,formヘルパーのinputでmultiple=”checkbox”にすると吐かれるhtmlのidが重複する現象があったので対策方法をメモしておく。
(結果からいうとform.phpを書き換えた)

現象

echo $this->Form->input(
	'contactItem',
	array(
		'type' => 'select',
		'multiple' => 'checkbox',
		'options' => $contactItems,
		'label' => false
	)
);

こんな感じでviewでformヘルパーを使った結果がこれだよ。

checkboxのinputのidが全部被ってしまってlabelのforも同じところを指すのでチェックボックスとして機能していない。。。

対処

WEB上で情報を探したがあまり見つからなかった。
仕方ないのであまりやりたくなかったけどform.phpを書き換えた。
該当箇所は__selectOptions()関数の内部,2083行目あたり

$htmlOptions['id'] = $tagName;
$label = array('for' => $tagName);

こうなっていたので以下のように変更。

$htmlOptions['id'] = $tagName . $htmlOptions['value'];
$label = array('for' => $tagName . $htmlOptions['value']);

その結果

となり,無事解決。


コメントを残す

メールアドレスが公開されることはありません。