如何动态地将列表分成不同的div

时间:2015-06-26 06:21:32

标签: php html css blade

美好的一天,

我的页面中有一个类别列表,但只要可以添加或删除它。你可以帮我制定一个循环来将我的列表分成每个div最多5个列表。

离。

foreach($categories as $cat)
  <label><input type ="checkbox"><?php echo $cat->name ?></label></br>
endforeach

上面的代码将在1列

中生成一个复选框列表

enter image description here

所以我尝试了这个循环

<?php $count = 0; ?>
    @foreach($categories as $cat)
    @if($count == 0)
    <div class="col-md-4">
    @elseif($count == 5)
    <?php $count = 0; ?>
    </div>
    @endif
    <label><input type="checkbox" value="{{$cat->xid}}">{{$cat->category}}</label><br>
    <?php $count++; ?>
    @endforeach

它会像这样生成

enter image description here

但它只包含列表中的前5个元素,接下来的5个元素不起作用。你能帮我吗:)建议真的很感激

2 个答案:

答案 0 :(得分:1)

这是在vanilla PHP中,但您可以轻松地使用刀片模板中的逻辑。我测试过它,效果很好。

<?php
   $categories = ['test','test1', 'test2', 'test3', 'test4', 'test5', 'test6', 'test7',
'test','test1', 'test2', 'test3', 'test4', 'test5', 'test6', 'test7','test','test1',
'test2', 'test3', 'test4', 'test5', 'test6', 'test7','test','test1', 'test2', 'test3',
'test4', 'test5', 'test6', 'test7'];
$end = end($categories);

$count = 1;
foreach($categories as $cat){ 
   if($count == 1 || $count % 5 == 1){
      echo '<div class="col-md-5">';
   }
?>

<label><input type ="checkbox"><?php echo $cat ?></label></br>

<?php
   if(($count % 5 == 0) && $count != 0 || ($cat == $end)){
     echo '</div>';
   }
   $count++;
} 
?>

答案 1 :(得分:1)

以下是我修改后的代码将生成所需的布局。您需要将CSS应用于class =“col-md-4”,以根据您的要求分隔每个块。

<?php $count = 0; ?>
 @foreach($categories as $cat)
 @if($count == 0)
   <div class="col-md-4">
 @endif

 @if($count> 0 && $count%5 == 0)
      </div>
      <div class="col-md-4">
 @endif

 <label><input type="checkbox" value="{{$cat->xid}}">{{$cat->category}}     
 </label><br>
 <?php $count++; ?>
@endforeach

@if($count <= 5)
  </div>
@endif