我在用
$form->input('Model.name', array('multiple'=>'checkbox');
Run Code Online (Sandbox Code Playgroud)
我试图基于模型数据来设置要检查的特定复选框.
我怎样才能做到这一点?
Mar*_*rko 30
cmptrgeekken的解决方案适用于单个复选框.我假设您正在生成多个复选框,用于HABTM关系或类似的东西.
您需要将包含要选择的元素值的数组传递给方法,如下所示:
$options = array(1 => 'ONE', 'TWO', 'THREE');
$selected = array(1, 3);
echo $form->input('Model.name', array('multiple' => 'checkbox', 'options' => $options, 'selected' => $selected));
Run Code Online (Sandbox Code Playgroud)
将产生这个:
<div class="input select">
<label for="ModelName">Name</label>
<input name="data[Model][name]" value="" type="hidden">
<div class="checkbox">
<input name="data[Model][name][]" checked="checked" value="1" id="ModelName1" type="checkbox">
<label for="ModelName1" class="selected">ONE</label>
</div>
<div class="checkbox">
<input name="data[Model][name][]" value="2" id="ModelName2" type="checkbox">
<label for="ModelName2">TWO</label>
</div>
<div class="checkbox">
<input name="data[Model][name][]" checked="checked" value="3" id="ModelName3" type="checkbox">
<label for="ModelName3" class="selected">THREE</label>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
选中第一个和第三个复选框.
请记住,您实际上正在使用多个选择元素,它只是显示为一堆复选框(由于可用性,这是更好的IMO).
cmp*_*ken 24
我不使用CakePHP,但根据文档,看起来好像你应该能够添加选项'checked'=>true:
$form->input('Model.name', array('type'=>'checkbox','checked'=>true));
Run Code Online (Sandbox Code Playgroud)
因为这是复选框功能的选项之一.
| 归档时间: |
|
| 查看次数: |
86036 次 |
| 最近记录: |