PHP模数函数问题

时间:2017-01-19 08:36:18

标签: php html

我正在尝试使用php / mysql创建一些HTML。

我的HTML应该如下所示:

<div class="row">
  <div>Content Block</div>
  <div>Content Block</div>  
  <div>Content Block</div>
  <div>Content Block</div>
</div>
<div class="row">
  <div>Content Block</div>
  <div>Content Block</div>  
  <div>Content Block</div>
  <div>Content Block</div>
</div>
..........
<div class="row">
  <div>Content Block</div>
  <div>Content Block</div>  
  <div>Content Block</div>
  <div>Content Block</div>
</div>

每行有4个内容div。

这是我在我的PHP循环中尝试它的方式,但它对我不起作用。

while($stmt->fetch()) {    

  if($i % 4 == 0) {
    $html  = "<div class='row'>\n";
  }

  $html .= "    <div class='checkbox col-sm-3'>\n"; 
  $html .= "       <label>\n"; 
  $html .= "         <input class='custom' name='facility[$fid]' type='checkbox'>\n"; 
  $html .= "         <span class='lbl'> {$fname}</span>\n"; 
  $html .= "       </label>\n";   
  $html .= "    </div>\n";   

  if($i++ % 4 == 4) { 
    $html .= "  </div>\n";
  } 

  $ckbxOurPut[] = $html;
} 

有人可以告诉我这有什么不对吗?

谢谢。

5 个答案:

答案 0 :(得分:3)

if($i++ % 4 == 4) { 

$ var%4永远不会是4.你想要的是这个:

 if($i++ % 4 == 3) {

编辑:同样在第4行你重新定义$ html,你应该只连接(。=运算符)

答案 1 :(得分:1)

进行此更改 1.模数更改2.在外部div关闭后将数组中的html推送。

 if($i++ % 4 == 3) { 
   $html .= "  </div>\n";
   $ckbxOurPut[] = $html;
 }

答案 2 :(得分:1)

首先,您必须将if($i++ % 4 == 4)更改为if($i++ % 4 == 3)

此外,在代码的第4行,您使用$html = "<div class='row'>\n";代替$html .= "<div class='row'>\n";

答案 3 :(得分:0)

<?php
$a = [
    1,2,3,4,5,6,7,8,9,0,11,12,13
];

$i = 0;
$html = "";
foreach($a as $val)
{



   if($i % 4 == 0) {
     $html  .= "<div class='row'>\n";
   }

  $html .= $val."\n";          

   if($i++ % 4 == 3) { 
     $html .= "  </div>\n";
   } 

} 

 if($i % 4 != 3) { 
     $html .= "  </div>\n";
 } 


echo $html;

答案 4 :(得分:0)

试试这个:

$i = 0;
$html  = "<div class='row'>";

while($stmt->fetch()) {

    $i++;
    if($i == 5) {
         $html  .= "</div><div class='row'>";
         $i = 1;
     }

     $html .= "    <div class='checkbox col-sm-3'>\n";
     $html .= "       <label>\n";
     $html .= "         <input class='custom' name='facility[$fid]' type='checkbox'>\n";
     $html .= "         <span class='lbl'> {$fname}</span>\n";
     $html .= "       </label>\n";
     $html .= "    </div>\n";


}

$html  .= "</div>";
echo $html;