2015-11-05 7 views
-1

У меня есть Loop, который выводит данные в html-форму и таблицу. Как я могу ограничить количество столбцов, которые он отображает, причина, по которой я хочу это сделать, заключается в том, что у меня ограниченное пространство, и цикл может работать в 1000 раз или даже больше в зависимости от пользователя.Ограничить количество столбцов, отображаемых в таблице из цикла foreach

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

<form method="POST" action="script.php"> 
<table><tr> 
<td><input type="checkbox" name="itemSelect[]" class="itemSelect" value="<?php echo $id; ?>" /></td> 
<td> 
<div class="item-box" data-id="<?php echo $id; ?>"> 
    <img src="<?php echo $value['image_inventory']; ?>.png"> 
    <div id="rarity"> 
     <p> <?php 
       if (!isset($value['item_rarity'])) { 
        $rarity = "common"; 
        echo $rarity; 
       } else { 
        $rarity = $value['item_rarity']; 
        echo $rarity; 
       } 
      ?> </p> 
    </div> 

</div></td> 
</tr> </table> 
<?php 
} 

} 
?> 
</table> 
<button type="Submit"> 
    Send Trade Offer 
</button> 

+0

Вы не представили важную часть кода (цикл), также я не могу полностью понять, что вы хотите сделать. мне кажется, вам понадобится javascript или скрыть> 6 – Enjoyted

+0

Используйте modulo. Вы хотите закончить строку после 6 столбцов и добавить новую? Что-то вроде 'if ($ iRowCount% 6 == 0) echo" ";' внутри вашей петли (с счетчиком строк). – CD001

ответ

0

это должно помочь, настроить столбцы по мере необходимости:

<?php 
$data = array_fill(0,100,"text"); 
$i = 0; 
$columns = 8; 
$rest = $columns-(count($data)%$columns); 
?> 
<table> 
    <tr> 
     <?php foreach($data as $cell): ?> 
      <?php if(!($i%$columns)) echo '</tr><tr>'?> 
      <td><?= $cell ?></td> 
      <?php $i++;?> 
     <?php endforeach;?> 
     <!-- fill rest cells--> 
     <?php if($rest<$columns):for($r=0;$r<$rest;$r++): ?> 
      <td>fill</td> 
     <?php endfor;endif; ?> 
    </tr> 
</table> 

PS- может быть лучшей идеей, чтобы не использовать таблицу на всех и просто плавать каждый «клетку» влево (например, использовать элемент div), так что макет был бы отзывчив.

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