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}

{foreach} dipakai untuk mengulang terus-menerus melalui array asosiatif juga array-diindeks secara numerik, tidak seperti {section} yang untuk mengulang melalui hanya array-diindeks secara numerik. Sintaks untuk {foreach} jauh lebih mudah daripada {section}, tapi sebagai imbalannya hanya bisa dipakai untuk array tunggal. Setiap tag {foreach} harus dipasangkan dengan tag {/foreach} penutup.

Attribute NameTypeRequiredDefaultDescription
fromarrayYesn/aArray yang anda ulang terus
itemstringYesn/aNama variabel yang jadi elemen saat ini
keystringNon/aNama variabel yang saat ini jadi kunci
namestringNon/aNama perulangan foreach untuk mengakses properti

  • Atribut yang diperlukan adalah from dan item.

  • Name dari pengulangan {foreach} bisa apa saja yang anda sukai, terdiri dari huruf, angka dan garis bawah, seperti variabel PHP.

  • Pengulangan {foreach} bisa diulang terus, dan nama {foreach} yang diulang harus unik dari yang lain.

  • Atribut from, biasanya sebuah array nilai, menetapkan jumlah berapa kali {foreach} akan diulang.

  • {foreachelse} dijalankan ketika tidak ada nilai dalam variabel from.

  • Pengulangan {foreach} juga memiliki variabelnya sendiri yang menangani properti. Ini diakses dengan: {$smarty.foreach.name.property} dengan "name" menjadi atribut name.

    Catatan: Atribut name hanya diperlukan saat anda ingin mengakses properti {foreach}, tidak seperti {section}. Mengakses properti {foreach} dengan name tidak terdefinisi tidak menimbulkan kesalahan, tapi sebaliknya mengakibatkan hasil yang tidak diinginkan.

  • Properti {foreach} adalah index, iteration, first, last, show, total.

Teladan 7-5. Atribut item

assign(\'myArray\', $arr); ?>'); ?>

Template untuk ditampilkan $myArray dalam daftar tidak-berurut

<ul>
{foreach from=$myArray item=foo}
    <li>{$foo}</li>
{/foreach}
</ul>

Contoh di atas akan menampilkan:

<ul>
    <li>1000</li>
    <li>1001</li>
    <li>1002</li>
</ul>

Teladan 7-6. Mendemonstrasikan atribut item dan key

\'Tennis\', 3 => \'Swimming\', 8 => \'Coding\'); $smarty->assign(\'myArray\', $arr); ?>'); ?>

Template untuk ditampilkan $myArray sebagai pasangan kunci/nilai, seperti foreach PHP.

<ul>
{foreach from=$myArray key=k item=v}
   <li>{$k}: {$v}</li>
{/foreach}
</ul>

Contoh di atas akan menampilkan:

<ul>
    <li>9: Tennis</li>
    <li>3: Swimming</li>
    <li>8: Coding</li>
</ul>

Teladan 7-7. {foreach} dengan asosiatif atribut item

array(\'no\' => 2456, \'label\' => \'Salad\'), 96 => array(\'no\' => 4889, \'label\' => \'Cream\') ); $smarty->assign(\'items\', $items_list); ?>'); ?>

Template untuk ditampilkan $items dengan $myId dalam url

<ul>
{foreach from=$items key=myId item=i}
  <li><a href="item.php?id={$myId}">{$i.no}: {$i.label}</li>
{/foreach}
</ul>

Contoh di atas akan menampilkan:

<ul>
  <li><a href="item.php?id=23">2456: Salad</li>
  <li><a href="item.php?id=96">4889: Cream</li>
</ul>

Teladan 7-8. {foreach} dengan pengulangan item dan key

Menempatkan array ke Smarty, kunci berisi kunci untuk setiap nilai yang diulang.

assign(\'contacts\', array( array(\'phone\' => \'1\', \'fax\' => \'2\', \'cell\' => \'3\'), array(\'phone\' => \'555-4444\', \'fax\' => \'555-3333\', \'cell\' => \'760-1234\') )); ?>'); ?>

Template yang menampilkan $contact.

{foreach name=outer item=contact from=$contacts}
  <hr />
  {foreach key=key item=item from=$contact}
    {$key}: {$item}<br />
  {/foreach}
{/foreach}

Contoh diatas akan menampilkan:

<hr />
  phone: 1<br />
  fax: 2<br />
  cell: 3<br />
<hr />
  phone: 555-4444<br />
  fax: 555-3333<br />
  cell: 760-1234<br />

Teladan 7-9. Contoh database dengan {foreachelse}

Contoh database (seperti PEAR atau ADODB) dari naskah pencarian, hasil query ditempatkan ke Smarty

assign(\'results\', $db->getAssoc($sql) ); ?>'); ?>

Template yang menampilkan "None found" jika tidak ada hasil dengan {foreachelse}.

{foreach key=cid item=con from=$results}
    <a href="contact.php?contact_id={$cid}">{$con.name} - {$con.nick}</a><br />
{foreachelse}
    No items were found in the search
{/foreach}

.index

index berisi indeks array saat ini, dimulai dengan nol.

Teladan 7-10. contoh index

{/if} {/foreach}
{foreach from=$items key=myId item=i name=foo} {if $smarty.foreach.foo.index % 5 == 0}
Title
{$i.label}
'); ?>

.iteration

iteration berisi iterasi perulangan saat ini dan selalu dimulai dari satu, tidak seperti indeks. Ia bertambah satu setiap kali iterasi.

Teladan 7-11. contoh iteration dan indeks

.first

first adalah TRUE jika iterasi {foreach} saat ini adalah yang awal.

Teladan 7-12. contoh properti first

{/foreach}
{foreach from=$items key=myId item=i name=foo}
{if $smarty.foreach.foo.first}LATEST{else}{$myId}{/if} {$i.label}
'); ?>

.last

last disetel TRUE jika iterasi {foreach} saat ini adalah yang terakhir.

Teladan 7-13. contoh properti last

{$prod}{if $smarty.foreach.products.last}
{else},{/if} {foreachelse} ... konten ... {/foreach}'); ?>

.show

show dipakai sebagai parameter untuk {foreach}. show adalah nilai boolean. Jika FALSE, {foreach} tidak akan ditampilkan. Jika terdapat {foreachelse}, akan ditampilkan secara selang-seling.

.total

total berisi jumlah iterasi yang akan diulang {foreach}. Ini dapat digunakan di dalam atau setelah {foreach}.

Teladan 7-14. contoh properti total


{if $smarty.foreach.foo.last}
{$smarty.foreach.foo.total} items
{/if} {foreachelse} ... something else ... {/foreach}'); ?>

Lihat juga {section} dan $smarty.foreach.

Comments
No comments for this page.

Advertisement

Sponsors [info]

Sponsors