Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Smarty - section i indeksy tablic
marcini82
post
Post #1





Grupa: Zarejestrowani
Postów: 190
Pomógł: 1
Dołączył: 20.05.2005
Skąd: Poznań

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


Witam!

Mam w Smarty petle section, a w niej chce przegladac 2 tablice. Array1 jest indeksowana od 0 do 19 - i z tym nie ma problemu. Natomiast array2 jest indeksowana od 1 do 20 - czyli w tym samym powtorzeniu petli musze podac dla array2 wartosc indeksu o 1 wieksza. Tylko jak to zrobic?? Ponizszy przyklad powoduje blad:

  1. {section name=test start=0 loop=20}
  2. {$array1[test].value} {$array2[test+1].value}
  3. {/section}


Taki cudak rowniez nie dziala:
  1. {section name=test start=0 loop=20}
  2. {$array1[test].value} {$array2[$smarty.section.test.iteration].value}
  3. {/section}


Jak to zrobic?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
chlebik
post
Post #2





Grupa: Zarejestrowani
Postów: 113
Pomógł: 5
Dołączył: 12.09.2006
Skąd: Pruszków/Warszawa

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


Re: Cienki i sf - oczywiscie, ze mozna tak zrobic, ale prawda jest taka, ze wlasnie z section w Smartym sa problemy jak cholera i zasadniczo wykorzystanie tej petli do tego, do czego zostala stworzona (tzn. przechodzenia przez zwykla tablice nieasocjacyjna) jest utrudnione. Nie tak dawno tez probowalem zmusic section do poprawnego zachowania i mi nie wyszlo mimo usilnych prob.


Rozwiazanie zas tutaj okazalo sie banalnie proste, wystarczylo to wrzucic na spokojnie na warsztat. Z PHP przekazuje do Smarty 2 tablice, obydwie nieasocjacyjne. I kod wyglada sobie tak:



  1. {section name=test start=0 loop=4}
  2.  
  3. {assign var = "licznik" value = $smarty.section.test.iteration}
  4.  
  5. {$array1[test]} ------- {$array2[$licznik]}
  6.  
  7. {/section}



1. Wyrzuc to .value z wartosci tablicy - u mnie kiedy tego uzywam to wyskakuje mi 1 element stringa umieszczonego pod pierwszym indeksem. Mowiac krotko - kiedy w tablicy[0] mam wartosc 'jeden' do kiedy uzyje Twojej notacji mam po podstawieniu literke 'j'.

2. Skoro ty sie chcesz odwolywac do 1 elementu wyzej to uzycie $smarty.section.test.iteration jest jak najbardziej poprawne bo przeciez wartosc ta zawsze startuje od 1. Ja skojarzlyem te zmienna z inna by miec pewnosc, ze to wszystko dziala, ale jak nawet w miejsce $array2[$licznik] wstawie $array2[$smarty.ect....] to i tak mi dziala.


Pzdr
Chlebik
Go to the top of the page
+Quote Post

Posty w temacie


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: 3.10.2025 - 23:22