Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [smarty] pętla i zmienne
motorider
post
Post #1





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 15.11.2008

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 12)
thek
post
Post #2





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




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.
Go to the top of the page
+Quote Post
motorider
post
Post #3





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 15.11.2008

Ostrzeżenie: (0%)
-----


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}
Go to the top of the page
+Quote Post
thek
post
Post #4





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




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 (IMG:style_emoticons/default/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.
Go to the top of the page
+Quote Post
motorider
post
Post #5





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 15.11.2008

Ostrzeżenie: (0%)
-----


Wiem już w czym tkwi problem, ale nadal nie wiem jak go rozwiązać.
Go to the top of the page
+Quote Post
Meares
post
Post #6





Grupa: Zarejestrowani
Postów: 102
Pomógł: 13
Dołączył: 16.10.2009
Skąd: Łódź

Ostrzeżenie: (0%)
-----


  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>


Ten post edytował Meares 20.11.2009, 07:24:33
Go to the top of the page
+Quote Post
karolrynio
post
Post #7





Grupa: Zarejestrowani
Postów: 144
Pomógł: 25
Dołączył: 2.02.2009

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
motorider
post
Post #8





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 15.11.2008

Ostrzeżenie: (0%)
-----


Kod
{$new_products.$smarty[foreach][myLoop][index].link}

Nic nie zwraca.

Kod
{$newproduct.link}

Zwraca Illegal offset typ in...

Ten post edytował motorider 20.11.2009, 09:45:01
Go to the top of the page
+Quote Post
nospor
post
Post #9





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




a $new_products zawiera tablice czy obiekty?
Go to the top of the page
+Quote Post
motorider
post
Post #10





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 15.11.2008

Ostrzeżenie: (0%)
-----


Tablice.
Go to the top of the page
+Quote Post
nospor
post
Post #11





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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 (IMG:style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
thek
post
Post #12





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




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? (IMG:style_emoticons/default/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
Go to the top of the page
+Quote Post
motorider
post
Post #13





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 15.11.2008

Ostrzeżenie: (0%)
-----


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 (IMG:style_emoticons/default/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] =>


Ten post edytował motorider 20.11.2009, 16:14:36
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 18.09.2025 - 19:11