Avatar billede cypherdenmark Nybegynder
10. februar 2007 - 23:13 Der er 11 kommentarer

Smarty section - hvordan får jeg fat i næste element

Hej Alle,

Jeg sidder og roder med smarty og ved ikke hvordan pokker jeg får fat i det næste element.

indtil videre har jeg flg. kode:

{section name=id loop=$results}
  <tr>
    <td><img src="{$GalleryThumbs}/{$results[id].URL}" /></td>
    <td><img src="{$GalleryThumbs}/{$results[id].URL}" /></td>
  </tr>
  {/section}

Lige pt viser den det samme billede i hver td men den skulle helst vise billede1.jpg i den ene td og billede2.jpg i den anden td osv.

Håber i kan hjælpe - på forhånd tak. :-)
Avatar billede erikjacobsen Ekspert
10. februar 2007 - 23:23 #1
Du kan bruge http://smarty.php.net/manual/en/language.function.section.php#section.property.iteration til at se om du har et venstre eller højre billede. Hvad gør du hvis du ikke har et lige antal billeder i dit array?
Avatar billede cypherdenmark Nybegynder
10. februar 2007 - 23:30 #2
Hmm jeg forstå ikke helt?. Min sql ser såldes ud:

$sql = "SELECT i.URL ";
$sql .= "FROM images i";
$results = $db->rows($sql);

og assigner den sådan her:

$smarty->assign('results',$results);
Avatar billede erikjacobsen Ekspert
11. februar 2007 - 00:16 #3
Ja, så kan du med en {if} og modulus 2 finde ud af om det er et venstre eller højrebillede, og så afgøre om du skal skrive <tr> eller </tr>.

Men: Hvad gør du hvis du ikke har et lige antal billeder i dit array?
Avatar billede cypherdenmark Nybegynder
11. februar 2007 - 00:24 #4
Ok - det er vist noget mere avanceret end jeg lige havde regnet med :-) og mht. ikke lige antal billeder - ja det er et godt spørgsmål, den har jeg altså ikke tænkt over endnu.

Har du mulighed for at vise noget kode eller har du evt. nogle gode links med smarty og billedegallery? Så skal jeg nok smide nogle flere points i puljen.

Kunne være super at se noget kode så det er lettere for mig at forstå....

Tusind tak for din input så langt ;-)

Jeg dribler i seng - håber der er et svar imorgen tidlig.

Sov godt :-)
Avatar billede erikjacobsen Ekspert
11. februar 2007 - 00:55 #5
1) Du udskriver kun een <td> hver gang, som ser ud som een af dem du viser nu.
2) Din <tr> udskriver du hvis .iteration er ulige
3) Din <tr> udskriver du hvis .iteration er lige

...eller også er det omvendt med 2) og 3). Og så får du ikke valid HTML hvis der er et ulige antal billeder. (Der hvor du henter fra databasen kunne du putte et dummy-billede ind, hvis der er et ulige antal)
Avatar billede cypherdenmark Nybegynder
11. februar 2007 - 16:33 #6
okay - men jeg har stadigvæk ikke forstået hvordan jeg viser billede 2 med smarty section, har du mulighed for at vise en kodeeksempel?
Avatar billede erikjacobsen Ekspert
11. februar 2007 - 16:36 #7
Men du skal ikke spekulere på hvordan du "viser billede 2". Hvert gennemløb af din {section} viser eet billede i een <td>. Hvert anden skal så blot starte med <tr> - det klarer du med en {if}, og de andre hveranden skal slutte med </tr> - en anden {if}
Avatar billede cypherdenmark Nybegynder
11. februar 2007 - 16:48 #8
Hehe det er noget der får hjernecellerne igang det her :-)

Du nævnte tidligere at jeg skulle bruge modolus 2 og det er vel der kan udregne en rest om den er lige eller ulige ik?

men for at bruge modolus 2 skal jeg så bruge {math} i smarty?
Avatar billede erikjacobsen Ekspert
11. februar 2007 - 17:24 #9
Du kan vist bare skrive  "etellerandet  % 2 == 0" for at se om det er lige.
Jeg kan ikke lige afprøve noget med Smarty for tiden.
Avatar billede cypherdenmark Nybegynder
11. februar 2007 - 17:50 #10
Ok - en skam du ikke kan afprøve det med smarty, håber jeg selv kan. Men lige et spg. mere. Du skriver:

etellerandet  % 2 == 0

hvad mener du med etellerandet? er det antallet af billeder i array? eller er etellerandet iteration nummeret?
Avatar billede erikjacobsen Ekspert
11. februar 2007 - 18:44 #11
iterationsnummeret, se 10/02-2007 23:23:14
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester