2012-04-19 2 views
0

Я использую этот foreach для создания галереи видео youtube, но я хочу отображать 3 видео для каждой строки. Так же, как задать цикл 3 раза, а затем перейти к следующей строке и выполнить цикл 3 раза. .. мне не нужно, чтобы построить все петли на одной линии .. спасибо за помощькак управлять этим циклом foreach

table id="tblThumbsLayout" cellpadding="0" cellspacing="6"> 

<tr> 

    <?php foreach ($vcats as $vcat) { ?> 

<td class="tdImg"> 
    <div> 

     <?php echo '<iframe class="youtube-player" type="text/html" width=" 200 " height=" 100 " src="http://www.youtube.com/embed/' . $vcat['Video']['link'] . '"></iframe>' ;?> 
     <div class="text"><?php echo '<b>'. $vcat['Video']['title'].'</b>' ; ?></div> 
    </div> 
</td> 
<?php } ?> 
</tr> 
</table> 
+0

для всех предложенных ответов: не забудьте проверить, что это не последняя строка – lvil

ответ

1

Попробуйте это:

<?php 
     $i = 1; 
     foreach ($vcats as $vcat) { 
     if($i%3 == 0){ 
      echo "</tr><tr>"; 
     } 

    ?> 

    <td class="tdImg"> 
     <div> 

      <?php echo '<iframe class="youtube-player" type="text/html" width=" 200 " height=" 100 " src="http://www.youtube.com/embed/' . $vcat['Video']['link'] . '"></iframe>' ;?> 
      <div class="text"><?php echo '<b>'. $vcat['Video']['title'].'</b>' ; ?></div> 
     </div> 
    </td> 

    <?php $i++; } ?> 
+0

благодарит Ramesh, что это хорошо работает, я просто изменяю if ($ i% 3 == 0) { до if ($ i% 3 == 1) { – user1080247

+0

Спасибо. Извините, я сделал простую ошибку. –

0

Держите счетчик итераций цикла. Затем, используя оператор модуля, проверьте, имеет ли эта итерация, деленная на 3, остаток 0. Если это так, добавьте строку прерывания или новую строку таблицы, чтобы перейти к следующей строке.

Как так:

<table id="tblThumbsLayout" cellpadding="0" cellspacing="6"> 

<tr> 

    <?php 
     $counter = 1; 
     foreach ($vcats as $vcat) { 
    ?> 

<td class="tdImg"> 
    <div> 

     <?php echo '<iframe class="youtube-player" type="text/html" width=" 200 " height=" 100 " src="http://www.youtube.com/embed/' . $vcat['Video']['link'] . '"></iframe>' ;?> 
     <div class="text"><?php echo '<b>'. $vcat['Video']['title'].'</b>' ; ?></div> 
    </div> 
</td> 
<?php 
     if($counter % 3 == 0){ 
      echo '<br/>'; 
     } 
     ++$counter; 
    } 
?> 
</tr> 
</table> 
+0

спасибо, что объяснил этот момент – user1080247

0
<table id="tblThumbsLayout" cellpadding="0" cellspacing="6"> 

<tr> 
    <?php $counter = 1; $last = count($vcats)-1; ?> 
    <?php foreach ($vcats as $vcat) { ?> 

<td class="tdImg"> 
    <div> 

     <?php echo '<iframe class="youtube-player" type="text/html" width=" 200 " height=" 100 " src="http://www.youtube.com/embed/' . $vcat['Video']['link'] . '"></iframe>' ;?> 
     <div class="text"><?php echo '<b>'. $vcat['Video']['title'].'</b>' ; ?></div> 
    </div> 
    <?php if($counter%3==0 && $counter != $last): ?> 
     <br> 
    <?php $counter++; ?> 
    <?php endif; ?> 
</td> 
<?php } ?> 
</tr> 
</table> 
1

Я хотел бы добавить Div ID = видео по каждому пункту и в таблице стилей для этого использования DIV ID #video дисплей: встроенный;

Затем установите ширину div, чтобы разрешить 3 строки.

Таким образом, вам не нужно слишком беспокоиться о петле.

+0

подумайте, что вы тоже правы – user1080247

Смежные вопросы