【问题标题】:nested for loop difficulties嵌套for循环困难
【发布时间】:2013-04-08 00:31:20
【问题描述】:

当我在数据库中运行一个列表时,我需要打印出一个包含三个 li 的 div。当我使用引导程序时,我需要为 .span4 的第三列之后的每一行使用 .row-fluid 进行 div,但是我在让 for 循环工作时遇到了一些麻烦。这是未触及的代码:

<div class="row-fluid">'
          <ul class="thumbnails">
            <?php 
              for($i=0; $i<count($rows); $i+=1){ 
            ?>
            <!-- This is why sort by programme doesn't work - ID is not what I need -->
            <li class="span4" id="<?php echo $rows[$i]['Class']; ?>">
              <div class="thumbnail">
                <img src="http://placehold.it/320x200" alt="ALT NAME">
                <div class="caption">
                  <h3><?php echo $rows[$i]['Title']; ?></h3>
                  <?php if(!empty($rows[$i]["DateSold"])){ ?>
                    <span class="label label-warning" style="margin-bottom: 10px;">Book has been sold!</span>
                  <?php } ?>
                  <p>Seller: <?php echo $rows[$i]['FirstName'] . " " . $rows[$i]['LastName']; ?> </p>
                  <p>Email: <?php echo $rows[$i]['Email']; ?></p>
                  <p>Cost: <?php echo $rows[$i]['Cost']; ?></p>
                  <p>Condition: <?php echo $rows[$i]['BookCondition']; ?></p>
                  <p align="center">
                    <?php echo '<a href="#myModal' . $i . '" class="btn btn-primary btn-block" data-toggle="modal">View More information</a>' ?>
                  </p>
                </div>
              </div>
            </li> 
            <!-- Modal -->
              <?php echo'<div id="myModal' . $i . '" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">'; ?>
                <div class="modal-header">
                  <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
                  <h3 id="myModalLabel">Book information</h3>
                </div>
                <div class="modal-body">
                  <p>Title: <?php echo $rows[$i]['Title']; ?> </p>
                  <p>Seller: <?php echo $rows[$i]['FirstName'] . " " . $rows[$i]['LastName']; ?> </p>
                  <p>Email: <?php echo $rows[$i]['Email']; ?></p>
                  <p>Phone: <?php echo $rows[$i]['PhoneNumber']; ?></p>
                  <p>Condition: <?php echo $rows[$i]['BookCondition']; ?></p>
                  <p>Date added: <?php echo $rows[$i]['DateAdded']; ?></p>
                  <p>Class: <?php echo $rows[$i]['Class']; ?></p>
                  <p>Cost: <?php echo $rows[$i]['Cost']; ?></p>
                </div>
                <div class="modal-footer">
                  <button class="btn" data-dismiss="modal" aria-hidden="true">Close</button>
                </div>
              </div>
              <?php
            }
          ?>   
          </ul>
    </div>

每从数据库打印一次后,我需要围绕列表项的 row-fluid 的顶级父 div ..

【问题讨论】:

    标签: php twitter-bootstrap for-loop


    【解决方案1】:

    在第二次通读时,您似乎更希望每三个 LI 位于单独的 DIV 和 UL 中。在这种情况下,您可以使用array_chunk

    <?php $chunks = array_chunk($rows, 3);
    for ($i = 0; $i<count($chunks); $i++)
    {
        ?> <div class="row-fluid"><ul class="thumbnails"> <?php
        for ($j = 0; $j<count($chunks[$i]); $j++)
        {
            ?> do your LIs in here <?php
        }
        ?> </ul></div> <?php
    }
    

    【讨论】:

    • 是的,我想过类似的事情,但是您如何确保在需要开始新行之前只打印三个列表项?
    • 使用array_chunk。我重写了我的答案,因为我认为我第一次误解了这个问题。
    • 我现在正在阅读它,谢谢(之前没有听说过这个功能,所以我要尝试一下)
    • 是的,那种工作——除了 li,它只打印了第一个条目 3 次
    • 认为我的变量实际上只是切换了
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-25
    • 2015-07-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多