Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [inne]Smarty funkcja section i step, pobieranie 2 rekordu ?
Forum PHP.pl > Forum > Przedszkole
jarekhunter
Witam, tym razem to będą smarty 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..
nospor
Cytat
po prostu to by było najprostsze do mojego zastosowania..
chyba jedynie jakie byles wstanie wymyslic. to nie jest jednoznaczne z najprostrze 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}
jarekhunter
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 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ąć 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ąć...
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.