在CakePHP中创建选择框时,将类添加到输入和标签

时间:2014-09-16 09:31:53

标签: cakephp cakephp-2.3

以下是创建选择框的方法:

    echo $this->Form->select('weekdays', array(
         '1'=>__('Manday'), 
         '2'=>__('Tuesday'), 
         '3'=>__('Wednesday'), 
         '4'=>__('Thursday'), 
         '5'=>__('Friday'), 
         '6'=>__('Satruday'), 
         '7'=>__('Sunday')), 
       array('multiple'=>'checkbox', 'class'=>'checkbox2'));

输出带有以下HTML标记的7 checbox:

<div class="checkbox2">
<input type="checkbox" name="data[Event][weekdays][]" value="1" id="EventWeekdays1" />
<label for="EventWeekdays1">Monday</label>
</div>

但是需要的预期输出是:

<div class="checkbox2">
<input type="checkbox" 
       name="data[Event][EventWeekdays1]" 
       id="EventWeekdays1" class="css-checkbox" value="1" />
<label for="EventWeekdays1" class="css-label">Mandag</label>
</div>

我使用过文档,但在使用Form->select

时似乎无法找到为输入和标签属性添加clases的选项

非常感谢任何帮助或指导。

2 个答案:

答案 0 :(得分:2)

仅使用FormHelper认可的东西:

$options = array(
     '1'=>__('Manday'), 
     '2'=>__('Tuesday'), 
     '3'=>__('Wednesday'), 
     '4'=>__('Thursday'), 
     '5'=>__('Friday'), 
     '6'=>__('Satruday'), 
     '7'=>__('Sunday'));

$this->Form->input('weekdays', array(
                       'type' => 'select',
                       'div' => array('class'=>'checkbox2'),
                       'multiple'=>'checkbox', 
                       'class'=>'css-checkbox',
                       'options' => $options,
                       'label' => array('class'=>'css-label')));

Docs here

答案 1 :(得分:0)

我认为在阅读完你的问题之后,你最好自己构建标记,然后通过你需要的复选框上的$选项循环,所以:

$options = array(
     '1'=>__('Manday'), 
     '2'=>__('Tuesday'), 
     '3'=>__('Wednesday'), 
     '4'=>__('Thursday'), 
     '5'=>__('Friday'), 
     '6'=>__('Satruday'), 
     '7'=>__('Sunday'));

<div class="checkbox2">
 <?php foreach($options as $k => $v): ?>

  <input type="checkbox" 
     name="data[Event][EventWeekdays<?php echo $k ?>]" 
     id="EventWeekdays<?php echo $k ?>" class="css-checkbox" value="<?php echo $v ?>" />
  <label for="EventWeekdays<?php echo $k ?>" class="css-label">Mandag</label>

 <?php endforeach; ?>
</div>

不是更好的方法,但它可以工作,可以解决您的问题。希望它有所帮助!