2011-09-15 102 views
2

如何從從 - 生成>開關輸入,用於多個複選框這樣的「代碼」:顯示覆選框 - CakePHP的

<ul class="inputs-list"> 
<li> 
<label> 
<input type="checkbox" value="option1" name="optionsCheckboxes"> 
<span>Option one is this and that&mdash;be sure to include why it’s great</span> 
</label> 
</li> 
<li> 
<label> 
<input type="checkbox" value="option2" name="optionsCheckboxes"> 
<span>Option two can also be checked and included in form results</span> 
</label> 
</li> 
</ul> 

現在我有這樣的代碼:

echo $this->Form->input('User', array(
     'label' => FALSE, 
     'type' => 'select', 
     'multiple' => 'checkbox', 
     'options' => $users, 
     'selected' => $html->value('User.User'), 
     'between' => '<ul class="inline"><li>', 
     'after' => '</li></ul>', 
     'separator' => '</li><li>' 
    )); 

但而不是李標籤的我全身都裹在div標籤:

<ul class="inline"> 
<li> 
<input id="UserUser" type="hidden" value="" name="data[User][User]"> 
<div class="xlarge"> 
<input id="UserUser4" type="checkbox" value="4" checked="checked" name="data[User][User][]"> 
<label class="selected" for="UserUser4">Andraž</label> 
</div> 
<div class="xlarge"> 
<input id="UserUser5" type="checkbox" value="5" checked="checked" name="data[User][User][]"> 
<label class="selected" for="UserUser5">Pinko</label> 
</div> 
</li> 
</ul> 
+2

還有一個選項叫做'div'使它成爲假,那麼它不會包裝在div中。 'div'=> false試試這個選項。 – Vins

+0

不,它不工作。 – AtLeT

+0

@Vins有正確的答案。 [見書](http://book.cakephp.org/view/1397/options-div)。如果你想添加'',你可以試試'before'和'after'。請參閱表單幫助文檔 – Ross

回答

0

我發現沒有辦法使每個複選框或刪除div複選框的包裝,使用'type' => 'select''multiple' => 'checkbox'。我建議循環列表中的用戶,每個條目使用'type' => 'checkbox'。這使得它更加靈活地呈現:

<?php 
    $lUserList = Array(
    '0' => 'Simon', 
    '1' => 'AtLet', 
    '2' => 'Vins', 
    '3' => 'Ross' 
    ); 
?> 

<?php echo $this->Form->create(); ?> 

<ul> 
    <?php foreach($lUserList as $k => $v): ?> 
    <li>  
     <?php  
      echo $this->Form->input('User.'.$k, array(
        'type' => 'checkbox', 
        'label' => $v, 
        'div' => false 
       )); 
     ?> 
    </li> 
    <?php endforeach; ?> 
</ul>  

<?php echo $this->Form->end('Save'); ?>