Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [smarty] pętla i zmienne
Forum PHP.pl > Forum > Przedszkole
motorider
Mam taki fragment kodu z pętlą w smarty,
Kod
{foreach from=$new_products item=newproduct name=myLoop}
             <li><a href="{$new_products.0.link}" >test</a></li>
{/foreach}

chciałbym aby działał tak, ale nie wiem jak to zrobić ponieważ nie znam smarty.
Kod
   {foreach from=$new_products item=newproduct name=myLoop}
             i=0;
               <li><a href="{$new_products.$i.link}" >test</a></li>
             i=i+1;
   {/foreach}

Z góry dziękuję za pomoc.
thek
Manual do smarty... http://www.smarty.net/manual/en/language.f...ion.foreach.php
Przyjrzyj się iteration i index... Myślę, że chodzi o index w tym wypadku.
motorider
Próbowałem w ten sposób, ale {$new_products.$smarty.foreach.myLoop.index.link} nic nie zwraca.

Kod
{foreach from=$new_products item=newproduct name=myLoop}
             <li><a href="{$new_products.$smarty.foreach.myLoop.index.link}" >test</a></li>
{/foreach}
thek
To polecam poczytać w manualu jak należy się odwoływać do tablic wyników. skoro indeksem jest liczba wskazująca go konkretnie, to nie można przecież walnąć jej tam na żywca zaraz po kropce bo potraktuje szablon ja jako dalsza część ścieżki a nie konkretną liczbę. Zresztą sam popatrz na wywołanie i powiedz mi czy wiesz gdzie się kończy tablica a a zaczyna indeks? Bo ja patrząc i NIE wiedząc, że przy $smarty zaczyna się index nie zgadłbym tego winksmiley.jpg Podpowiem, żebyś szukał prz opisach tablic lub zagnieżdżonych tablicach i pętlach. Tam masz przykłady jak się należy odwoływać w takich sytuacjach.
motorider
Wiem już w czym tkwi problem, ale nadal nie wiem jak go rozwiązać.
Meares
  1. {foreach from=$new_products item=newproduct name=myLoop}
  2. <li><a href="{$new_products.$smarty[foreach][myLoop][index].link}">test</a></li>
  3. {/foreach}

Próbuj czegoś w tym stylu.

PS. Zwróć uwagę na takie coś:
  1. <ul>
  2. {foreach from=$items key=myId item=i}
  3. <li><a href="item.php?id={$myId}">{$i.no}: {$i.label}</li>
  4. {/foreach}
  5. </ul>
karolrynio
A nie prościej:

Kod
{foreach from=$new_products item=newproduct name=myLoop}
             <li><a href="{$newproduct.link}" >test</a></li>
{/foreach}


$new_products[$i] masz przeciez w zmiennej $newproduct więc po co kombinować aż tak.
motorider
Kod
{$new_products.$smarty[foreach][myLoop][index].link}

Nic nie zwraca.

Kod
{$newproduct.link}

Zwraca Illegal offset typ in...
nospor
a $new_products zawiera tablice czy obiekty?
motorider
Tablice.
nospor
zrob w kodzie php:
print_r($new_products)
i pokaz co zawiera

kod:
{$newproduct.link}
jest jak najbardziej ok. Skoro sie czepia to ta twoja tablica jakas dziwna winksmiley.jpg
thek
Ma źle zrobione tablice... Ma w item kolejna tablice, która jak dla mnie przechowuje całość siebie. Bo jak niby inaczej wytłumaczyć konieczność odwoływania się do określonego elementu o tym samym id? winksmiley.jpg No chyba, że to zawiera coś zupełnie innego i ma tablicę tablic i wtedy musi zrobić zagnieżdżonego foreach, który też w manualu ma opisany jako:
Example 7-8. {foreach} with nested item and key
motorider
Cytat(nospor @ 20.11.2009, 10:20:52 ) *
zrob w kodzie php:
print_r($new_products)
i pokaz co zawiera

kod:
{$newproduct.link}
jest jak najbardziej ok. Skoro sie czepia to ta twoja tablica jakas dziwna winksmiley.jpg


Kod
Array ( [0] => Array ( [id_product] => 28 [id_supplier] => 0 [id_manufacturer] => 3 [id_tax] => 0 [id_category_default] => 14 [id_color_default] => 0 [on_sale] => 0 [ean13] => [ecotax] => 0.00 [quantity] => 4 [price] => 0.00 [wholesale_price] => 0.000000 [reduction_price] => 0.00 [reduction_percent] => 0 [reduction_from] => 2009-09-27 [reduction_to] => 2009-09-27 [reference] => [supplier_reference] => [location] => [weight] => 0 [out_of_stock] => 2 [quantity_discount] => 0 [customizable] => 0 [uploadable_files] => 0 [text_fields] => 0 [active] => 1 [indexed] => 1 [date_add] => 2009-11-19 14:40:28 [date_upd] => 2009-11-19 14:40:28 [description] =>opis dlugi [description_short] => opis krotki [link_rewrite] => natalie-940ap [meta_description] => [meta_keywords] => [meta_title] => [name] => Natalie (940AP) [id_image] => 28-67 [legend] => Natalie (940AP) [rate] => [manufacturer_name] => Keia Pink [allow_oosp] => 0 [id_product_attribute] => 101 [category] => usztywniany [link] => http://www.magicbra.hekko.pl/product.php?id_product=28 [attribute_price] => 1 [price_tax_exc] => 0.00 [reduction] => 0 [price_without_reduction] => 0.00 [features] => Array ( ) [attachments] => Array ( ) [pack] => [packItems] => Array ( ) [nopackprice] => 0 ) [1] => Array ( [id_product] => 27 [id_supplier] => 0 [id_manufacturer] => 3 [id_tax] => 0 [id_category_default] => 6 [id_color_default] => 0 [on_sale] => 0 [ean13] => [ecotax] => 0.00 [quantity] => 2 [price] => 101.00 [wholesale_price] => 0.000000 [reduction_price] => 0.00 [reduction_percent] => 0 [reduction_from] => 2009-09-18 [reduction_to] => 2009-09-18 [reference] => [supplier_reference] => [location] => [weight] => 0 [out_of_stock] => 2 [quantity_discount] => 0 [customizable] => 0 [uploadable_files] => 0 [text_fields] => 0 [active] => 1 [indexed] => 1 [date_add] => 2009-11-19 13:59:44 [date_upd] => 2009-11-19 13:59:44 [id_product_attribute] => 100 [description] =>
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.