Перейти к содержанию

Рекомендуемые сообщения

Подскажите как разделить цикл foreach что бы он выводил по 3 товара в ряд?

У меня просто ужасная верстка досталась от верстальщика и каждые 3 товара в ней должны быть в отдельном диве

В моем случае это див <div class="goodsWrapperRow">

 

Делаю так:

<?php foreach (array_chunk($products, ceil(count($products) / 3)) as $product) { ?>
						<div class="goodsWrapperRow">
						
						<?php foreach ($products as $product) { ?>
						<div class="goodsSliderItem">
						ТОВАР
						</div>	
						 <?php } ?>
						 
						</div>
<?php } ?>

Не работает(

Изменено пользователем ilerok

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Мб проще добавить </div><div>после каждого 3-го чтобы разделить

        <?php foreach ($products as $key => $product) { ?>

<?php if ($key == '3') { ?>
</div><div>
<?php } ?>

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
3 минуты назад, losthill сказал:

Мб проще добавить </div><div>после каждого 3-го чтобы разделить


        <?php foreach ($products as $key => $product) { ?>

<?php if ($key == '3') { ?>
</div><div>
<?php } ?>

 

можно вместе с моим кодом пример как это будет выглядеть? буду оч благодарен

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
<?php 
$i=0; $is=3; 
foreach ($products as $product){ 
?>
	<div class="goodsSliderItem">
  		ТОВАР
	</div>	
<?php 
if($i==$is){
	$is+3;
?> 
</div><div class="goodsWrapperRow">	//тут закрывающие и открывающие теги
<?php
}
$i++;
} ?>
 </div>

 

Изменено пользователем Pavel666

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
<?php foreach (array_chunk($products, ceil(count($products) / 3)) as $product) { ?>
	<div class="goodsWrapperRow">
		<?php foreach ($product as $p) { ?>
		<div class="goodsSliderItem">
			ТОВАР
		</div>	
		<?php } ?>
	</div>
<?php } ?>

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
9 минут назад, Pavel666 сказал:

тут закрывающие и открывающие теги

а где

<div class="goodsWrapperRow">

?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
13 минут назад, fanatic сказал:

<?php foreach (array_chunk($products, ceil(count($products) / 3)) as $product) { ?>
	<div class="goodsWrapperRow">
		<?php foreach ($product as $p) { ?>
		<div class="goodsSliderItem">
			ТОВАР
		</div>	
		<?php } ?>
	</div>
<?php } ?>

 

Не сработало решение, на каких то страницах категорий вывело по 2 товара в ряд и на каких то по 1 в ряд(( 

Изменено пользователем ilerok

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
13 минут назад, Pavel666 сказал:

<?php 
$i=0; $is=3; 
foreach ($products as $product){ 
?>
	<div class="goodsSliderItem">
  		ТОВАР
	</div>	
<?php 
if($i==$is){
	$is+3;
?> 
</div><div class="goodsWrapperRow">	//тут закрывающие и открывающие теги
<?php
}
$i++;
} ?>
 </div>

 

не сработало( 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Может оно привязано к количеству товаров на странице по умолчанию? У меня по умолчанию в админке указано выводить по 6 товаров на странице

Изменено пользователем ilerok

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
23 минуты назад, ilerok сказал:

не сработало( 

да, ошибся немного

вместо $is+3; напишите $is+=3;

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
24 минуты назад, ilerok сказал:

не сработало( 

и в начале вместо $i=0; напишите $i=1;

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

@Pavel666, сделал ваши правки - вывело по 1 товару в ряду 

Изменено пользователем ilerok

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
42 минуты назад, ilerok сказал:

<?php foreach (array_chunk($products, ceil(count($products) / 3)) as $product) { ?>

<?php foreach (array_chunk($products, 3) as $product) { ?>

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
2 минуты назад, fanatic сказал:

<?php foreach (array_chunk($products, 3) as $product) { ?>

 

сделал так, задублировало товары, один и тот же товар выводится в разных рядах

Изменено пользователем ilerok

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Все начинания правильны, но не до конца.

<?php foreach (array_chunk($products,  3) as $products_3) { ?>
    <div class="goodsWrapperRow">
    <?php foreach ($products_3 as $product) { ?>
      <div class="goodsSliderItem">
        Товар:
      </div>
    <?php } ?>
    </div>
<?php } ?>

 

  • +1 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Только что, ibond сказал:

Все начинания правильны, но не до конца.


<?php foreach (array_chunk($products,  3) as $products_3) { ?>
    <div class="goodsWrapperRow">
    <?php foreach ($products_3 as $product) { ?>
      <div class="goodsSliderItem">
        Товар:
      </div>
    <?php } ?>
    </div>
<?php } ?>

 

Сработало!)))) Спасибо!!!!! Ставлю плюсик)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

 

 

del
  • +1 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Только что, fanatic сказал:

у вас что-то с версткой

этот код


<?php foreach (array_chunk($products, 3) as $product) { ?>
	<div class="goodsWrapperRow">
		<?php foreach ($product as $p) { ?>
		<div class="goodsSliderItem">
			ТОВАР
		</div>	
		<?php } ?>
	</div>
<?php } ?>

вылодит в каждом   


<div class="goodsWrapperRow">

по  3    

 


<div class="goodsSliderItem">

arr_cank.png

да видно что то было с версткой, но уже решил вопрос

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.