Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: нужно каждые 2 итерации цикла обвернуть в div

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
OgecuT
Отправлено: 26 Декабря, 2014 - 14:59:27
Post Id


Новичок


Покинул форум
Сообщений всего: 10
Дата рег-ции: Нояб. 2014  


Помог: 0 раз(а)

[+]


есть код который выводит инфу с базы данных drupal
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. <?php foreach ($rows as $id => $row): ?>
  3. <div<?php if ($classes_array[$id]) { print ' class="' . $classes_array[$id] .' news_s_r"';  } ?>>
  4.     <?php print $row;?>
  5. </div>
  6. <?php endforeach; ?>
  7.  


нужно каждые 2 итерация цикла обворачивать в div

сейчас он этот кусок кода

CODE (htmlphp):
скопировать код в буфер обмена
  1. <div<?php if ($classes_array[$id]) { print ' class="' . $classes_array[$id] .' news_s_r"';  } ?>>
  2.     <?php print $row;?>


выводит:

CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. <div class="item1"></div>
  3. <div class="item2"></div>
  4. <div class="item3"></div>
  5. <div class="item4"></div>
  6. <div class="item5"></div>
  7. <div class="item6"></div>
  8. <div class="item7"></div>
  9. <div class="item8"></div>
  10. <div class="item9"></div>
  11.  


а надо что бы боло так:
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. <div class="wrap">
  3. <div class="item1"></div>
  4. <div class="item2"></div>
  5. </div>
  6. <div class="wrap">
  7. <div class="item3"></div>
  8. <div class="item4"></div>
  9. </div>
  10. <div class="wrap">
  11. <div class="item5"></div>
  12. <div class="item6"></div>
  13. </div>
  14. <div class="wrap">
  15. <div class="item7"></div>
  16. <div class="item8"></div>
  17. </div>
  18. <div class="wrap">
  19. <div class="item9"></div>
  20. </div>
  21.  


помогите пожалуйста.
 
 Top
RickMan
Отправлено: 26 Декабря, 2014 - 15:50:10
Post Id


Участник


Покинул форум
Сообщений всего: 1033
Дата рег-ции: Май 2012  


Помог: 30 раз(а)




Перед итерациями создайте переменную $i, в каждой итерации увеличивайте переменную на 1. Ну а сам код обварачивания сделайте примерно так:
PHP:
скопировать код в буфер обмена
  1. if (!($i % 2)){ echo "<div class="wrap">"; }

Ну и закрытие тега так же.

http://www.php.su/learnphp/operators/?arith - тут почитайте про %

(Отредактировано автором: 26 Декабря, 2014 - 15:51:23)

 
 Top
OgecuT
Отправлено: 26 Декабря, 2014 - 16:21:52
Post Id


Новичок


Покинул форум
Сообщений всего: 10
Дата рег-ции: Нояб. 2014  


Помог: 0 раз(а)

[+]


RickMan пишет:
Перед итерациями создайте переменную $i, в каждой итерации увеличивайте переменную на 1. Ну а сам код обварачивания сделайте примерно так:
PHP:
скопировать код в буфер обмена
  1. if (!($i % 2)){ echo "<div class="wrap">"; }

Ну и закрытие тега так же.

http://www.php.su/learnphp/operators/?arith - тут почитайте про %


извините можите показать на примере этого кода как это сделать

CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2.  
  3. <?php foreach ($rows as $id => $row): ?>
  4. <div<?php if ($classes_array[$id]) { print ' class="' . $classes_array[$id] .' news_s_r"';  } ?>>
  5.     <?php print $row;?>
  6. </div>
  7. <?php endforeach; ?>
  8.  


так что бы каждые 2 итерации обворачивались в div
 
 Top
RickMan
Отправлено: 26 Декабря, 2014 - 16:34:43
Post Id


Участник


Покинул форум
Сообщений всего: 1033
Дата рег-ции: Май 2012  


Помог: 30 раз(а)




PHP:
скопировать код в буфер обмена
  1. <?PHP $i_wrapper = 0; ?>
  2.  
  3. <?PHP foreach ($rows as $id => $row): ?>
  4.   <?PHP if (!($i_wrapper % 2)){ echo "<div class="wrap">"; } ?>
  5.     <div<?PHP if ($classes_array[$id]) { print ' class="' . $classes_array[$id] .' news_s_r"';  } ?>>
  6.       <?PHP print $row;?>
  7.     </div>
  8.   <?PHP if (!($i % 2)){ echo "</div>"; } ?>
  9.   <?PHP $i_wrapper++; ?>
  10. <?PHP endforeach; ?>
  11.  
  12. <?PHP if (!($i_wrapper % 2)){ echo "</div>"; } ?> // Если в последнем диве 1 элемент


Ну прим мерно как-то так
 
 Top
OgecuT
Отправлено: 26 Декабря, 2014 - 21:21:02
Post Id


Новичок


Покинул форум
Сообщений всего: 10
Дата рег-ции: Нояб. 2014  


Помог: 0 раз(а)

[+]


[quote=RickMan][/quote]

спасибо. но так я уже делал... этот код обарачивает каждый второй элемент в div а не 2 в месте(((
 
 Top
skiphog
Отправлено: 27 Декабря, 2014 - 10:05:54
Post Id



Частый гость


Покинул форум
Сообщений всего: 139
Дата рег-ции: Дек. 2014  
Откуда: Киров, Россия


Помог: 11 раз(а)




Попробуйте в коде от RickMan, поменять 8 строку на
PHP:
скопировать код в буфер обмена
  1. <?PHP if ($i % 2){ echo "</div>"; } ?>

Потому, что закрывать див нужно только после нечетного элемента.
По той же причине замените 12 строку на
PHP:
скопировать код в буфер обмена
  1. <?PHP if ($i_wrapper % 2){ echo "</div>"; } ?>
 
My status
 Top
OgecuT
Отправлено: 29 Декабря, 2014 - 10:15:36
Post Id


Новичок


Покинул форум
Сообщений всего: 10
Дата рег-ции: Нояб. 2014  


Помог: 0 раз(а)

[+]


skiphog пишет:
Попробуйте в коде от RickMan, поменять 8 строку на
PHP:
скопировать код в буфер обмена
  1. <?PHP if ($i % 2){ echo "</div>"; } ?>

Потому, что закрывать див нужно только после нечетного элемента.
По той же причине замените 12 строку на
PHP:
скопировать код в буфер обмена
  1. <?PHP if ($i_wrapper % 2){ echo "</div>"; } ?>


Спасибо ребят. Очень помогли. пока не могу сказать спасибо.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB