Вывод результата цыкла в цыкле в ...

adur

Guest
Вывод результата цыкла в цыкле в ...

Такой вопрос: у меня в ПХП есть цыкл в цыкле.
На выходе получается что то вроде:


Раздел 1
Подраздел 1
Подпод раздел 1
Подпод раздел 2
Подраздел 2
Подраздел 3
Раздел 2
Подраздел 1
Подраздел 2
Подраздел 3

Как это вывести в смарти, пытался писать

{section}
{section}
{section}
{/section}
{/section}
{/section}

Но получается что смарти выводит.

Раздел 1
Подраздел 1
Подпод раздел 1
Подпод раздел 2
Подраздел 2
Подраздел 3
Подраздел 1
Подраздел 2
Подраздел 3
Раздел 2
Подраздел 1
Подпод раздел 1
Подпод раздел 2
Подраздел 2
Подраздел 3
Подраздел 1
Подраздел 2
Подраздел 3
 

ForJest

- свежая кровь
Код:
{foreach from=$Array item=row}
     {foreach from=$row item=sub_row}
          {foreach from=sub_row item=sub_sub_row}
          {$sub_sub_row|@var_dump}
          {/foreach}
     {/foreach}
{/foreach}
-~{}~ 05.10.05 13:15:

А вообще я бы данные сформировал в php и вывел одним циклом в смарти.
 

adur

Guest
А можно по подробнее про второй способ

-~{}~ 05.10.05 14:23:

Да и как правильно передать эти значения в смарти
$smarty->append, но тогда как разделить разделы и подразделы, в append идентификатора нет.
 

ForJest

- свежая кровь
А можно по подробнее про второй способ
Формируешь массив с помощью PHP - как ты написал что умеешь это делать. Одномерный массив
$array = array();
//здесь 3 вложенных цикла
$tpl-> assign('Data', $array);
--------------------
{foreach from=$Data item=row}
{$row}
{/foraechelse}
No data
{/foreach}
 

adur

Guest
А как это с {section} сделать. У меня асоциативный массив
 

ForJest

- свежая кровь
adur
http://smarty.php.net/manual/ru/language.function.section.php
{foreach} как раз идеально подходит для ассоциативных массивов.
 

adur

Guest
Можно махонький пример, а то у меня совсем не получается, плиз а то я уже замучался, видимо что-то не понимаю.

-~{}~ 05.10.05 19:36:

С пхп кодом, и темплэйтом, плиз.
 

alexhemp

Новичок
adur

Ты неверно делаешь

Тебе нужен 1 массив и один цикл.

массив вида

название - уровень

Далее в зависимости от уровня скажем применяешь CSS-класс или увеличиваешь padding или еще как-то сдвигаешь элемент.
 

adur

Guest
Я понимаю но не до конца, плиз один примерчик, целый день ковыряю, а сроки жмут. Крутил и так и сяк, рабочего варианта не получается.

-~{}~ 05.10.05 19:49:

У меня логика так работает, что я дёргаю таблицы, получается 3 цыкла в цыкле, надо это передать смарти. но как ? с принтом всё работает идеально, никак не могу к смарти прикрутить !
 

adur

Guest
Уже разобрался, пришлось ид разделов, подразделов вводить, затем в смарти сравнения проводить.
 
Сверху