2012-07-03 31 views
0

我渲染复选框列表;说10个复选框使用下面的代码:禁用checkboxlist中的某些复选框+ FormHelper

<?php echo $this->Form->input('User.hobbies', array('options' => $hobbies_array, 'multiple' => 'checkbox'));?> 

现在我想渲染视图前禁用其中的一些复选框。意味着我不想使用JavaScript来禁用某些复选框。请建议,是否有任何一种选择,我们可以通过该选项提供复选框值的数组来禁用其中一些复选框。请建议。

+0

还没有任何一种选择,但我们可以帮助实现这一功能。 –

回答

1

没有任何一种可用的FormHelper方法,它可以接受两个数组,一个用于checkboxlist,另一个用于禁用其中一些复选框。你将不得不让自己的助手类扩展FormHelper类。

0

我不确定这是否真的有效,因为我现在还没有时间查看它,但看起来你可以完成这个惠特FromHelper::inputs()。我建议你尝试这样的事:

$form->inputs(array(
     'name' => array('label' => 'custom label'), 
     'hobbies' => array(
      'label' => 'custom label', 
      'type' => 'checkbox', 
      'multiple' => true, 
      'options' => $options 

    ) 
)); 

其中$选项是复选框名称的阵列选项:

$options = array(
    'Thing1' => array(
     'Value 1' => 'Label 1', 
     'disabled' => true 
    ), 
    'Thing2' => array(
     'Value 2' => 'Label 3' 
    ) 
); 

我也将研究这个时候我有时间,因为这个概念是非常感兴趣的 要知道。我不知道我何时有时间做一些研究,但我会发表评论或相应地更新我的答案。

+0

感谢您的回答,但我的代码已经生成了一个复选框列表。但我只想从服务器端禁用一些这些复选框。我不想使用Jquery等,我希望能得到你的答案。 –

+0

这里有趣的是如何禁用复选框服务器端,这就是为什么我使用了''disabled'=> true'参数。试试这个只是为了获得信息,并给我们一些反馈。正如我所说我没有时间来测试这个,但它在TODO列表中。 –

+0

上面的代码没有为我工作。可能是我错过了一些东西。我的问题的底线是我想传递一个禁用的复选框ID的数组这些是从整个复选框ID的一些。我希望你正在得到这种情况。如果你需要更多的澄清,那么欢迎你提问。谢谢 –