在div
陈述中使用while
的正确方法是什么?我在弄清楚-循环运行时如何只使用div
一次时遇到问题。
我的当前代码最终在每个循环中都这样结束:
<div class="column1">
<img src="IMG1">
</div>
<div class="column1">
<img src="IMG">
</div>
我要实现的目标是-
<div class="column1">
<img src="IMG1">
<img src="IMG2">
</div>
我当前的代码:
<div class="roww">
<?php if ( have_rows( 'image-collection' ) ) :
$images = [];
$i = 0;
while ( have_rows( 'image-collection' ) ): the_row();
$images[ $i ] = get_sub_field( 'image' );
if ( get_sub_field( 'liela_bilde' ) == "True" ) { ?>
<div class="column">
<img src="<?php echo $images[ $i ][ 'url' ]; ?>" alt="<?php echo
$images[ $i ][ 'alt' ]; ?>">
</div>
<?php } else { ?>
<div class="column1">
<img src="<?php echo $images[ $i ][ 'url' ]; ?>" alt="<?php echo
$images[ $i ][ 'alt' ]; ?>">
</div>
<?php }?>
<?php
++$i;
endwhile;
endif; ?>
</div>
答案 0 :(得分:0)
我假设您可能想在while循环内的PHP块内使用div。如果是这样,您可以使用以下语法来实现相同的目的。
<?php
while($row = mysqli_fetch_array($result)){
echo "<div style='background-color:red;color:white;'>text</div>";
}
?>
答案 1 :(得分:0)
经过一番思考和一点点测试,我认为我得到了一个可行的解决方案。关键是必须将<div>
置于while循环之外。添加其他支票if($i==0)
,您可以执行类似echo 'class="column"'
的操作。
我的解决方案可能是最糟糕的,可以找到,但是应该可以。
最后,您的代码应类似于:
<div class="roww">
<?php if ( have_rows( 'image-collection' ) ) :
$images = [];
$i = 0;
?> <div <?
while ( have_rows( 'image-collection' ) ): the_row();
$images[ $i ] = get_sub_field( 'image' );
if ($i==0) {
if ( get_sub_field( 'liela_bilde' ) == "True" ) {
echo 'class="column"';
}
else {
echo 'class="column1"';
}
?> > <? } ?>
<img src="<?php echo $images[ $i ][ 'url' ]; ?>" alt="<?php echo
$images[ $i ][ 'alt' ]; ?>">
<?php
++$i;
endwhile; ?>
</div> <?
endif; ?>
</div>
这未经测试,可能包含错误,因为没有时间尝试复制您的结构。但是,考虑到您正在使用Elliot的Condon插件这一事实,它应该起作用,并且您不应该由于<div
而损坏HTML。如果您这样做,那么我在某个地方出错了。
我还创建了一个非常简化的解决方案,该解决方案不依赖于插件,可以根据您的需求进行调整,并满足您的要求。该代码可以在下面找到:
<div class="roww">
<?php
$test=true;
if ( $test ) :
$images = [];
$i = 0;
?>
<div
<?php
while ( $test ) :
$test1=true;
if($i==0) { if($test1) echo 'class="column"'; else echo 'class="column1"';
?> > <? } ?>
<img src="<?php echo "Yay"; ?>" alt="<?php echo
"Nay"; ?>">
<?php
++$i;
if($i==5) { break; }
endwhile; ?>
</div> <?php
endif;
?>
</div>
它看起来有些不同,但是我试图保持主要逻辑不变。通过更改$test
和$test1
的值,您可以更改示例的输出。
答案 2 :(得分:0)
我认为您正在寻找的是创建包含X个项目的行并在该动态X上开始一个新行吗?
在这种情况下,可以用%找到答案。
if ($myIndex % 2 === 0) {
// Do something
}