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']);
その結果
となり,無事解決。
- 投稿タグ
- cakephp