我正在尝试修复以前程序员的代码,但Cake的FormHelper不想让它变得简单......
我们在同一页面上有多组复选框。要设置它们,我们使用formhelper,如下所示:
echo $form->input("tabs.".$type.".".$value['value'],array('label' => 'Market by '.$namex.'','options'=>$my_all_tabs,'default'=>'SELECT '.$type.'','size'=>10, 'multiple'=> 'checkbox','div'=>'scroll_checkboxes'));
问题是,由于复选框($ my_all_tabs)的自动生成ID格式,所有复选框组中的相同复选框具有相同的ID ...所以说我试过检查第3个复选框中的第一个复选框组,它将更改第一个组中的第一个复选框。
这是HTML输出...请记住,有几个这样的块,数字57取决于你所在的块。但是这个变量不会转移到复选框ID,导致重复< / p>
<div class="scroll_checkboxes">
<label for="TabsOMBCODE57">Market by OMB Market Definition</label>
<input type="hidden" name="data[tabs][OMBCODE][57]" value="">
<div class="checkbox">
<input type="checkbox" name="data[tabs][OMBCODE][57][]" id="TabsOMBCODE1" value="1">
<label for="TabsOMBCODE1">MEDIAOVERVIEW</label>
</div>
<div class="checkbox">
<input type="checkbox" name="data[tabs][OMBCODE][57][]" id="TabsOMBCODE2" value="2">
<label for="TabsOMBCODE2">ONLINEOVERVIEW</label>
</div>
<div class="checkbox">
<input type="checkbox" name="data[tabs][OMBCODE][57][]" id="TabsOMBCODE3" value="3">
<label for="TabsOMBCODE3">MARKETONLINEDASH</label>
</div>
<div class="checkbox">
<input type="checkbox" name="data[tabs][OMBCODE][57][]" id="TabsOMBCODE4" value="4">
<label for="TabsOMBCODE4">USAVGCOMPARE</label>
</div>
</div>
基本上我需要来自name属性的57也在id属性中。
我尝试使用以下代码为每个代码制作自定义ID:
foreach($alltabs as $a){
$my_all_tabs[] = array("name"=>$a,
"value"=>$count+1,
"id"=>"willynilly"
);
$count++;
}
但那只是平坦无效。 CakePHP的出色系统完全忽略了自定义id标签。
这里有没有涉及升级CakePHP的解决方案?
答案 0 :(得分:0)
试试这个。我无法为你测试这个,因为我没有CakePHP 1.2设置,也没有使用它。
echo $form->input(
"tabs.".$type.".".$value['value'],
array(
'id' => "Tabs".$type.$value['value'],
'label' => 'Market by'.$namex.'',
'options'=>$my_all_tabs,
'default'=>'SELECT '.$type.'','size'=>10,
'multiple'=> 'checkbox',
'div'=>'scroll_checkboxes'
)
);