Get Smarty

Donate

Paypal

Smarty Icon

You may use the Smarty logo according to the trademark notice.

Smarty Template Engine Smarty Template Engine

For sponsorship, advertising, news or other inquiries, contact us at:

Sites Using Smarty

Advertisement

{foreach}, {foreachelse}

Die foreach Schleife ist eine Alternative zu section. foreach wird verwendet, um ein assoziatives Array zu durchlaufen. Die Syntax von foreach-Schleifen ist viel einfacher als die von section. {foreach} Tags müssen mit {/foreach} tags kombiniert werden. Erforderliche Parameter sind: from und item. Der Name der {foreach}-Schleife kann frei vergeben werden und sowohl Buchstaben, Zahlen als auch Unterstriche enthalten. foreach-Schleifen können verschachtelt werden, dabei ist zu beachten, dass sich die definierten Namen voneinander unterscheiden. Die from Variable (normalerweise ein assoziatives Array) definiert die Anzahl der von foreach zu durchlaufenen Iterationen. foreachelse wird ausgeführt wenn keine Werte in der from Variable übergeben wurden.

Attribut Name Typ Erforderlich Standardwert Beschreibung
from string Ja n/a Name des zu durchlaufenden Array.
item string Ja n/a Name für das aktuelle Element.
key string Nein n/a Name für den aktuellen Schlüssel.
name string Nein n/a Name der 'foreach'-Schleife, für die Abfrage der 'foreach'-Eigenschaften.

Example 7.5. {foreach} - item


<?php
$arr = array( 1001,1002,1003);
$smarty->assign('custid', $arr);
?>

  

<?php
{* dieses Beispiel gibt alle Werte aus dem $KundenId Array aus *}
{foreach from=$KundenId item=aktuelle_id}
 id: {$aktuelle_id}<br>
{/foreach}

  

Das obige Beispiel erzeugt folgende Ausgabe:


id: 1000<br>
id: 1001<br>
id: 1002<br>

  

Example 7.6. {foreach} - item und key


// Der Schlüssel enthält den Schlüssel des jeweils iterierten Wertes
// die Zuweisung sieht wie folgt aus:
<?php
 $smarty->assign('kontakte', array(
                             array('phone' => '1',
                                   'fax' => '2',
                                   'cell' => '3'),
                             array('phone' => '555-4444',
                                   'fax' => '555-3333',
                                   'cell' => '760-1234')
                             ));
?>

  

{foreach name=aussen item=kontakt from=$kontakte}
  <hr />
  {foreach key=schluessel item=wert from=$kontakt}
    {$schluessel}: {$wert}<br>
  {/foreach}
{/foreach}
  </programlisting>
  <para>
   Das obige Beispiel erzeugt folgende Ausgabe:
  </para>
  <screen>
<![CDATA[
<hr />
   phone: 1<br>
   fax: 2<br>
   cell: 3<br>
<hr />
   phone: 555-4444<br>
   fax: 555-3333<br>
   cell: 760-1234<br>

  

Example 7.7. {foreach} - Beispiel mit Datenbankzugriff (z.B. PEAR oder ADODB)


<?php
  $sql = 'SELECT contact_id, name, nick FROM contacts ORDER BY contact';
  $smarty->assign('kontakte', $db->getAssoc($sql));
?>

  

{foreach key=cid item=con from=$kontakte}
  <a href="kontact.php?contact_id={$cid}">{$con.name} - {$con.nick}</a><br />
{/foreach}

  

Foreach-Loops haben auch eigene Variablen welche die Foreach Eigenschaften enthalten. Diese werden wie folgt ausgewiesen: {$smarty.foreach.foreachname.varname}. foreachname ist der Name der als name Attribut von Foreach übergeben wurden.

iteration

gibt die aktuelle iteration aus

iteration beginnt immer mit 1 und wird danach bei jedem durchgang um 1 inkrementiert.

first

first ist TRUE wenn die aktuelle Iteration die erste ist

last

last ist TRUE wenn die aktuelle Iteration die letzte ist

show

show wird als Parameter von foreach verwedet und ist ein boolscher Wert, TRUE oder FALSE. Auf FALSE wird nichts ausgegeben und wenn foreachelse gefunden wird, dieser angezeigt.

total

total gibt die Anzahl Iterationen des Foreach Loops aus und kann in- oder nach- Foreach Blöcken verwendet werden.

Comments
No comments for this page.

Advertisement

Sponsors [info]

Sponsors