Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [inne]Smarty funkcja section i step, pobieranie 2 rekordu ?
jarekhunter
post
Post #1





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 21.01.2010

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


Witam, tym razem to będą smarty (IMG:style_emoticons/default/smile.gif)

Mam pewien problem
Pobieram dane w ten sposób

  1. {section loop=$baza name=baza_id step=2}
  2. <div>
  3. <a href="{$baza[baza_id].link}" class="n1">{$baza[baza_id].nazwa}</a><br />
  4. <a href="{$baza[baza_id.index_next].link}" class="n2">{$baza[baza_id.index_next].nazwa}</a><br />
  5. </div>
  6. {/section}


Robię pętle przy pomocy section i chce kolejno pobrać record 0,1 później 2,3 itp.

Mój zapis jest błędny dlatego że pobierze record
0,2,2,4,4,6,6 itp.
moja tabela wygląda tak
  1. [0]=([link]=>"link1",[nazwa]=>"nazwa1")
  2. [1]=([link]=>"link2",[nazwa]=>"nazwa2")
  3. [2]=([link]=>"link3",[nazwa]=>"nazwa3")
  4. [3]=([link]=>"link4",[nazwa]=>"nazwa4")
  5. [4]=([link]=>"link5",[nazwa]=>"nazwa5")
  6. [5]=([link]=>"link6",[nazwa]=>"nazwa6")


Chce pobierać kolejno dane ale przy pomocy step=2, czyli dla pierwszego rekordu mam inną tabelkę, dla rekordu 2 inną itp.

Fakt można zastosować section bez step wtedy pobieram wszystko po kolei z cycle values="1,2".
Zależy mi na czymś podobnym jak np. w php czyli
  1. $tablica[]="test 1";
  2. $tablica[]="test 2";
  3. $tablica[]="test 3";
  4. $tablica[]="test 4";
  5.  
  6. for ($a=0; $a<count($tablica);$a=$a+2)
  7. {
  8. echo $tablica[$a]."<br />";
  9. echo $tablica[$a+1]."<br />";
  10. }


Nie pytajcie czemu tak kombinuję po prostu to by było najprostsze do mojego zastosowania..
Dziękuję serdecznie za pomoc i sugestie..
Go to the top of the page
+Quote Post
nospor
post
Post #2





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




Cytat
po prostu to by było najprostsze do mojego zastosowania..
chyba jedynie jakie byles wstanie wymyslic. to nie jest jednoznaczne z najprostrze (IMG:style_emoticons/default/winksmiley.jpg)
Kod
{foreach from=$baza name=baza_id item=row}
<div>
    <a href="{$row.link}" class="{if $smarty.foreach.baza_id.index % 2 == 0}n1{else}n2{/if}">{$row.nazwa}</a><br />
</div>
{/foreach}
Go to the top of the page
+Quote Post
jarekhunter
post
Post #3





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 21.01.2010

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


nospor - też myślałem o dzieleniu modulo.

Ale jak byś nie zauważył twój wynik zmienia tylko nazwy klas.. i przypada 1 link na 1 div
a w moim przypadku ma przypadać również 1 link na 1 div ale po tym 2 linku ma być również zamkniety div i właśnie sądziłem że bez użycia if się da jakoś to zrobić.
W twoim przykładzie jest 1 if, a zbuduj mi np. by to miało postać taką
Przykład..
  1. <div>
  2. <div>
  3. <a href="link1">Nazwa linku 1</a>
  4. </div>
  5. <div>
  6. <a href="link2">Nazwa linku 2</a>
  7. </div>
  8. </div>

Wartość z kodu php jest umieszczona miedzy section co daje powtórzenie tego kodu co 2
1 link bez problemu można pobrać a 2 (IMG:style_emoticons/default/questionmark.gif) , właśnie z tym mam problem..

Co prawda da się to na ifach zrobić ale troszkę mija się to z celem.
dlatego zastosowałem section i step=2 ale jakoś nikt nie przewidział lub przynajmniej w dokumentacji nie jest jasno napisane jak czegoś takiego dokonać..

Da się coś takiego osiągnąć (IMG:style_emoticons/default/questionmark.gif)
Dlatego moja postać miała na zasadzie step, tylko że smarty nie pozwalają pobrać 2 rekordu, tzn pozwalają jeśli znamy ich id i właśnie nad tym siedzę.

EDIT:
Ok temat rozwiązałem za pomocą section i step=2, wszystko mi działa jak należy bez żadnych if itp.
o pętli foreach wiem ale nie stosuję jej wole section większe możliwości ma.
Temat można zamknąć...

Ten post edytował jarekhunter 29.01.2010, 19:44:43
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: 22.08.2025 - 15:51