Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][Smarty] Smarty - pętla foreach
elldiablo
post
Post #1





Grupa: Zarejestrowani
Postów: 79
Pomógł: 1
Dołączył: 30.05.2009

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


Witam,

Mam tablicę, którą chciałbym wyświetlić w szablonach smarty:
  1. array(9) {
  2. [0]=>
  3. object(stdClass)#7 (1) {
  4. ["my-account-array"]=>
  5. array(36) {
  6. [0]=>
  7. string(10) "1215638992"
  8. [1]=>
  9. string(4) "0.00"
  10. [2]=>
  11. string(4) "0.00"
  12. [3]=>
  13. string(4) "0.00"
  14. [4]=>
  15. string(6) "180.00"
  16. [5]=>
  17. string(1) "1"
  18. [6]=>
  19. string(19) "2010-10-22 15:28:48"
  20. }
  21. }
  22. }


w php zrobiłem coś takiego

  1. $tablica - to jest tablica
  2. $ids = array();
  3. foreach($tablica as $key) {
  4. $ids[] = $key->{'my-account-array'}['0'];
  5. $ids[] = $key->{'my-account-array'}['1'];
  6. }

dane wyświetlają się ok,
Jak można zrobić to w smarty?

Ten post edytował elldiablo 27.10.2010, 08:33:21
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 10)
nospor
post
Post #2





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




Jaki masz konkretnie problem bo za bardzo nie rozumiem.
Tu masz link o tym jak w smarty obrabia sie tablice
http://www.smarty.net/manual/en/language.f...ion.foreach.php


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

"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
elldiablo
post
Post #3





Grupa: Zarejestrowani
Postów: 79
Pomógł: 1
Dołączył: 30.05.2009

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


zawartość tablicy $tablica chcę wyświetlić w pętli foreach w smartach.
Go to the top of the page
+Quote Post
nospor
post
Post #4





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




No to dalem ci link - do dziela. Masz tam nawet przykłady


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

"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
elldiablo
post
Post #5





Grupa: Zarejestrowani
Postów: 79
Pomógł: 1
Dołączył: 30.05.2009

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


Właśnie zapoznaje się z przykładami, dzięki za info, a jak wyświetlić obiekty z tablicy w smartach?
Go to the top of the page
+Quote Post
nospor
post
Post #6





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




normalnie, tak jak w php
$obiekt->wlasciwosc


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

"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
elldiablo
post
Post #7





Grupa: Zarejestrowani
Postów: 79
Pomógł: 1
Dołączył: 30.05.2009

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


a dostanę jakąś podpowiedź, bo nie mogę sobie poradzić.

chodzi mi o pętle foreach w smartach, jak ją zrobić z obiektem z tablicy?
Go to the top of the page
+Quote Post
nospor
post
Post #8





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




petla to petla. co za roznica czy elementem tablicy jest obiekt? No zadna
Kod
{foreach from=$tablica item=el} {* el to Twoj obiekt*}
{foreach from=$el->my-account-array item=val}
Blabla {$val}
{/foreach}
{/foreach}


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

"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
elldiablo
post
Post #9





Grupa: Zarejestrowani
Postów: 79
Pomógł: 1
Dołączył: 30.05.2009

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


Próbuje, testuje i nic.

cały czas jest błąd:

Fatal error: Unsupported operand types in ... szablon.tpl (temp_c)


...

zrobiłem cos takiego, nie dodawając obiektu:
  1. {foreach from=$doMyAccount2 item=object}
  2. {foreach from=$object item=key}
  3. {foreach from=$key item=value}
  4. <tr><td>{counter}</td><td>{$value}</td><td></td><td></td><td></td><td></td></tr>
  5. {/foreach}
  6. {/foreach}
  7. {/foreach}


i wszystkie informacje mam w jednej kolumnie, no ale to już chyba pikuś.

Ten post edytował elldiablo 27.10.2010, 12:32:18
Go to the top of the page
+Quote Post
nospor
post
Post #10





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




Cytat
Próbuje, testuje i nic.

cały czas jest błąd:

Fatal error: Unsupported operand types in ... szablon.tpl (temp_c)
Kod co ci dałem przed chwilą przetestowałem. Dziala bez problemu

edit:aaa..... chodzi o te nieszczęsne minusy w nazwie właściwosci smile.gif
Kto to slyszal by zmienne tworzyc z minusami?

Cytat
i wszystkie informacje mam w jednej kolumnie, no ale to już chyba pikuś.
Wkladasz do jednej kolumny to masz w jednej kolumnie. Jesli nie chcesz miec w jednej kolumnie to nie wkladaj ich do jednej kolumny smile.gif
Jak chcesz miec?


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

"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
elldiablo
post
Post #11





Grupa: Zarejestrowani
Postów: 79
Pomógł: 1
Dołączył: 30.05.2009

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


Chodzi Ci o to:
"my-account-array"

to allegro sobie tak wymyśliło i trzeba się przystosować. To nie jest mój wymysł.

Zgadza się, skrypt działa.
Jeśli zmienię zmienną na my_account_array to szablo działa bez problemu, natomiast jak jest oryginalnie czyli od allegro to skrypt wygląda tak:

Poprawnie:
  1. $_from = (array)$this->_tpl_vars['object']->my_account_array)


Błąd:
  1. $_from = (array)$this->_tpl_vars['object']->my-$this->_tpl_vars['ccount']-$this->_tpl_vars['rray'])


Jakiś pomysł jak to obejść?
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 - 06:01