【问题标题】:Displaying checkboxes in li tag - CakePHP在 li 标签中显示复选框 - CakePHP
【发布时间】:2011-09-15 08:56:07
【问题描述】:

如何从From->imput,为多个复选框生成这种“代码”:

<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>'
   ));

但不是 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>

【问题讨论】:

  • 还有另一个选项叫做 'div' 让它为 false 然后它不会包裹在 div 中。 'div' => false 试试这个选项。
  • @Vins 有正确的答案。 see the book。如果您想添加&lt;span&gt;,您可以尝试使用beforeafter。请参阅表单帮助文档
  • 是的,但我喜欢用 li 标签更改 div 标签。 ;)

标签: cakephp tags


【解决方案1】:

我发现无法使用'type' =&gt; 'select''multiple' =&gt; 'checkbox' 呈现每个复选框或从复选框中删除div 包装器。我建议循环列表中的用户,为每个条目使用'type' =&gt; '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'); ?>

【讨论】:

    猜你喜欢
    • 2011-08-17
    • 1970-01-01
    • 2016-04-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多