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.


--------------------
Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
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 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.


--------------------
Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
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


--------------------
manual mmocenter
Nie pomagam na PW!
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?


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

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 winksmiley.jpg


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

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? 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


--------------------
Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
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 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
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 10:48