簡體   English   中英

如何將n的動態生成量 <div> 在 <li>

[英]How to put dynamically-generated n-amount of <div>s in <li>

您好:)我真的需要您的幫助。 我動態生成項目列表,但我不想將每個項目放在單獨的<li>而是要獲得以下內容:

<ul>
   <li>
      <div>$pt</div>
      <div>$pt</div>
      <div>$pt</div>
   </li>
   <li>
      <div>$pt</div>
      <div>$pt</div>
      <div>$pt</div>
   </li>
</ul>

這是我有的代碼:

<ul class="some-ul-class">
    <?php $itemCount = 3; ?>
       <?php $i=0; foreach ($p->getItems() as $pt): ?>
           <?php if ($i++%$itemCount==0): ?>
              <li class="item">
           <?php endif; ?>
                 <div>$pt</div>
              </li>
       <?php endforeach; ?>
</ul>

但是結果是我得到這樣的結構:

<ul>
   <li>
      <div>$pt</div>
   </li>
   <div>$pt</div>
   <div>$pt</div>

   <li>
      <div>$pt</div>
   </li>
   <div>$pt</div>
   <div>$pt</div>
</ul>

謝謝你的幫助

<ul class="some-ul-class">
<?php $itemCount = 3; ?>
   <?php $i=0; foreach ($p->getItems() as $pt): ?>
       <?php if ($i%$itemCount==0): ?>
          <li class="item">
       <?php endif; ?>
             <div>$pt</div>
       <?php if ($i%$itemCount==2): ?>
          </li>
       <?php endif; $i++; ?>
   <?php endforeach; ?>
</ul>

你可以試試看

<ul class="some-ul-class">
  <?php $itemCount = 3;
    $i=0;
    foreach ($p->getItems() as $pt):
      if ($i%$itemCount==0):
        echo '<li class="item">';
      endif;
        echo "<div>$pt</div>";
      if ($i%$itemCount==2):
        echo '</li>';
      endif; $i++;
    endforeach; ?>
</ul>

嘗試這樣的事情:

<ul class="some-ul-class">
    <?php $itemCount = 4; ?>
    <li>
    <?php $i = 1; foreach ($p->getItems() as $pt): ?>
        <?php if ( $i % $itemCount == 0): ?>
            </li><li>
        <?php endif; ?>
        <?php $i++; ?>
        <div><?php echo $pt; ?></div>
    <?php endforeach; ?>
     </li>
</ul>

這將產生:

<ul class="some-ul-class">
    <li>
        <div>1</div>
        <div>2</div>
        <div>3</div>
    </li><li>
            <div>4</div>
            <div>5</div>
            <div>6</div>
    </li>
</ul>

演示版

您的代碼將無法在LI中實現嵌套DIVS,因為您需要一個多維數組才能將項目嵌套在容器中。 解決方案是將初始數據庫結果集分成具有數組塊的塊。

這只是將數組(1,2,3,4,5,6)拆分為([0] => array(1,2,3),[2] => array(4,5,6)

通過下面的循環,您將獲得兩個帶有3個嵌套DIV的LI。 該代碼未經測試,但應類似於可操作性。

<?php 

$items = array(1,2,3,4,5,6,8,9,10,11,12,13,14,15);         
// Your initial item array

$rows = 3;                           
// Number of rows in each li 

$items = array_chunk($items, $rows); 
// Final nested array in blocks of 3

if ($items) {       
    echo "<ul class='some-ul-class'>\n";        
    foreach ( $items as $item ) {           
        echo "<li class='items'>\n";            
        foreach ($item as $divs) {
            echo "<div>{$divs}</div>\n";
        }           
        echo "</li>\n";             
    }       
    echo "</ul>\n";
}

?>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM