我正在尝试使用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;
}
有人可以告诉我这有什么不对吗?
谢谢。
答案 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;