foreach Schleife ausgabe Teilen

dfluess

Gut bekanntes Mitglied
21. Januar 2007
652
3
Hallo,

ich habe eine dringende Frage zur foreach Schleife und hoffe sehr auf eine Lösung.

Angenommen es gibt 9 Datensätze. Ich möchte aber nicht alle 9 Datensätze komplett ausgeben, sondern nach jeweils 3 Datensätzen ein ul li Konstrukt erstellen.

Die Daten hole ich aus dieser Schleife:
PHP:
{foreach name=boxartikel from=$Box->Artikel->elemente item=Artikel}
...
{/foreach}
also so:

HTML:
<ul>
<li> Datensatz1</li>
<li> Datensatz2</li>
<li> Datensatz3</li>
</ul>
<ul>
<li> Datensatz4</li>
<li> Datensatz5</li>
<li> Datensatz6</li>
</ul>
<ul>
<li> Datensatz7</li>
<li> Datensatz8</li>
<li> Datensatz9</li>
</ul>

Ist das mit Smarty irgendie möglich?

Vielen lieben Dank im Voraus!
 

MBesancon

Administrator
Mitarbeiter
1. Oktober 2010
2.055
187
Erkelenz
AW: foreach Schleife ausgabe Teilen

So als Schuss aus der Hüfte solltest du das z.B. anhand der Durchläufe festmachen können:

Code:
{if $smarty.foreach.boxartikel.iteration is div by 3}...{/if}
 

dfluess

Gut bekanntes Mitglied
21. Januar 2007
652
3
AW: foreach Schleife ausgabe Teilen

Schön dass es offensichtlich eine Lösung gibt. Aber ich kann das - mit meinen einfachen Kenntnissen - noch nicht wirklich umsetzen.
Baue ich das so vor oder in die Schleife ein, dann wird gar nichts mehr ausgegeben.
Hast Du ein Anschauliches Beispiel für die Anwendung? AUf der Smarty Seite ist es viel zu allgemein beschrieben. Sorry für meine Unkenntnis :-/
 

MBesancon

Administrator
Mitarbeiter
1. Oktober 2010
2.055
187
Erkelenz
AW: foreach Schleife ausgabe Teilen

Wenn ich dein Beispiel von oben nehme müsste es folgendermaßen gehen

Code:
[COLOR=#000000][COLOR=#007700]{foreach [/COLOR][COLOR=#0000BB]name[/COLOR][COLOR=#007700]=[/COLOR][COLOR=#0000BB]boxartikel from[/COLOR][COLOR=#007700]=[/COLOR][COLOR=#0000BB]$Box[/COLOR][COLOR=#007700]->[/COLOR][COLOR=#0000BB]Artikel[/COLOR][COLOR=#007700]->[/COLOR][COLOR=#0000BB]elemente item[/COLOR][COLOR=#007700]=[/COLOR][COLOR=#0000BB]Artikel[/COLOR][COLOR=#007700]} [/COLOR][/COLOR][COLOR=#000080]
{if $smarty.foreach.boxartikel.first}
<ul>
{/if}
<li>[/COLOR] Datensatz1[COLOR=#000080]</li>[/COLOR]
{if $smarty.foreach.boxartikel.iteration is div by 3}
</ul>
<ul>
{/if}
[COLOR=#000080]{if $smarty.foreach.boxartikel.last}
</ul>
{/if}
[/COLOR][COLOR=#000000][COLOR=#007700]{/foreach}[/COLOR][/COLOR]

Ist wie gesagt ungetestet und ohne Garantie. Vielleicht gibt es da auch bessere (einfachere) Wege :).
 

Ähnliche Themen