Avatar billede fqthjoe Nybegynder
21. december 2002 - 22:18 Der er 28 kommentarer og
4 løsninger

Trække mine billeder ud i flere rækker

Hej eksperter.
Jeg har nedstående kode som blot henter mine billeder fra biblioteket "BackGrounds"; det virker.
Men hvordan kan jeg få mine billeder vist i flere kolonner, f.eks. 3 kolonner. Kan det lade sig gøre, og er der mon en der kan/vil hjælpe mig ?
vh thjoe

<?
chdir('backgrounds/');
$handle=opendir('.');
readdir($handle);
readdir($handle);
echo "<BR>";
while (($file = readdir($handle))!==false){
echo "<TABLE BORDER=1 BORDERCOLOR=BLUE><TR bgcolor=dddddd><TD><A HREF=backgrounds/$file><img src=backgrounds/$file width=150 height=80></TR></TABLE>";
}
echo "<BR>";
?>
Avatar billede tipsen Nybegynder
21. december 2002 - 23:51 #1
$rowtemplate = '\t<tr bgcolor="dddddd">\n\t\t<td><a href="backgrounds/%1\$s"><img src="backgrounds/%1\$s" width="150" height="80"></td>\n\t<td><a href="backgrounds/%2\$s"><img src="backgrounds/%2\$s" width="150" height="80"></td>\n\t<td><a href="backgrounds/%3\$s"><img src="backgrounds/%3\$s" width="150" height="80"></td>\n\t</tr>\n'

echo '<table border="1" bordercolor="blue">' . "\n";
while (($pic1 = readdir($handle)) !== false){
  pic2 = readdir($handle);
  pic3 = readdir($handle);
  printf($rowtemplate, $pic1, $pic2, $pic3);
}
echo "</table>\n";
Avatar billede tipsen Nybegynder
21. december 2002 - 23:52 #2
NB: Resultatet af alle \n og \t i $rowtemplate er en pæn html sourcekode der er nem at debugge.
Avatar billede erikjacobsen Ekspert
21. december 2002 - 23:55 #3
Skal det være i en tabel, eller er et "<br>" for hver tredie tilstrækkeligt ?
Avatar billede erikjacobsen Ekspert
21. december 2002 - 23:56 #4
Interessant tipsen, men der er jo ikke altid nødvendigvis et
multipla af tre filer
Avatar billede tipsen Nybegynder
22. december 2002 - 00:01 #5
Det er høker og der kommer 0, 1 eller 2 broken images/links - jeg var bare for doven til at lave den pæne udgave :-)
Avatar billede Slettet bruger
22. december 2002 - 00:08 #6
<TABLE BORDER="1" BORDERCOLOR="BLUE">
<tr>
<?
chdir('backgrounds/');
$handle=opendir('.');
readdir($handle);
readdir($handle);
echo "<BR>";
while (($file = readdir($handle))!==false){
echo "<TD><A HREF=backgrounds/$file><img src=backgrounds/$file width=150 height=80>";

$i++;
if($i/3 == round($i/3)){
echo "</tr><tr>";
}
}
?>
</tr>
</table>

Jeg tror det virker.... :)
Avatar billede tipsen Nybegynder
22. december 2002 - 00:08 #7
Men okay da:

$rowtemplate = '\t<tr bgcolor="dddddd">%s%s%s\n\t</tr>\n'

$celltemplate1 = '\t\t<td><a href="backgrounds/%1\$s"><img src="backgrounds/%1\$s" width="150" height="80"></td>\n';

$celltemplate2 = '\t\t<td>&nbsp;</td>\n';

echo '<table border="1" bordercolor="blue">' . "\n";
while (($img = readdir($handle)) !== false) {
  tmp1 = printf($celltemplate1, $img);
  if(($img = readdir($handle)) !== false) {
    tmp2 = printf($celltemplate1, $img);
  } else {
    tmp2 = printf($celltemplate2, $img);
  }
  if(($img = readdir($handle)) !== false) {
    tmp3 = printf($celltemplate1, $img);
  } else {
    tmp3 = printf($celltemplate2, $img);
  }
  printf($rowtemplate, $tmp1, $tmp2, $tmp3);
}
echo "</table>\n";
Avatar billede tipsen Nybegynder
22. december 2002 - 00:10 #8
westhi: Hvor jeg i min første udgave kan risikere at slutte med nogle broken images/links kan du på tilsvarende vis risikere at slutte med et forkert antal celler i sidste række...
Avatar billede Slettet bruger
22. december 2002 - 00:11 #9
det har jeg ikke opdaget før men det kan da godt være...
Avatar billede tipsen Nybegynder
22. december 2002 - 00:12 #10
BTW:

if($i/3 == round($i/3)){

skrives normalt som:

if($i%3) {

ved brug af modulusoperatoren % - se mere på http://dk.php.net/manual/en/language.operators.arithmetic.php
Avatar billede Slettet bruger
22. december 2002 - 00:13 #11
Det er da en del nemmere ;o)
Avatar billede tipsen Nybegynder
22. december 2002 - 00:13 #12
westhi: Det giver kun korrekt antal celler, hvis antallet af billeder tilfældigvis går op i 3 - det er dét som er det trælse element i problemstillingen - det der gør løsningen lidt omstændig.
Avatar billede Slettet bruger
22. december 2002 - 00:20 #13
Det vil jeg så modsige dig i...!

kig her www.westhi.dk/ny/?galleri
Avatar billede Slettet bruger
22. december 2002 - 00:20 #14
www.westhi.dk/ny/?side=galleri

tror jeg det var :)
Avatar billede erikjacobsen Ekspert
22. december 2002 - 00:24 #15
Men westhis giver en tom <tr></tr> hvis antallet præcis passer
Avatar billede Slettet bruger
22. december 2002 - 00:26 #16
shh ;)
Avatar billede tipsen Nybegynder
22. december 2002 - 00:45 #17
westhi: Forstår ikke helt linket - med mindre du også argumenterer med mig nu?
Avatar billede Slettet bruger
22. december 2002 - 16:02 #18
For at undgå fejl i koden, ligegyldig antallet af billeder har jeg retet lidt i westhi´s kode. Jeg har lavet en variabel sådan at du 3 steder er fri for at ændre stien. Variablen er $tja .. ligegyldig hvor mange billeder jeg har prøvet med, også selvom de ikke går op i 3 bliver siden godkendt på www.w3.org

kode:

<TABLE align="center" CELLPADDING="4" CELLSPACING="1">
<tr>
<?
$tja = "stien/til/mappen/med/dine/billeder/";


chdir($tja);
$handle=opendir('.');
readdir($handle);
readdir($handle);

while (($file = readdir($handle))!==false){
echo "<TD><a href=\"#\" OnClick=\"window.open('$tja/$file','lol','menu=no,width=370,height=283');\"> <img class='img' src='$tja/$file' width='150' height='80' alt=''> </a></td>";

$i++;
if($i/3 == round($i/3)){
echo "</tr><tr>";
}
}
echo "<td></td></tr>";
?>

</table>
Avatar billede Slettet bruger
22. december 2002 - 16:02 #19
Skulle have været et svar :-)
Avatar billede tipsen Nybegynder
22. december 2002 - 16:05 #20
cyperman: Så vidt jeg kan gennemskue har du samme problem med "skævt" antal celler...
Avatar billede Slettet bruger
22. december 2002 - 16:08 #21
Hmm.. kig her tipsen

http://cypermann.homeip.net/madsstampe/?ref=gallery/mund/01/test

Selvom antallet ikke går op i 3, bliver siden stadig godkendt. Tjek eventuelt selv i bunden af siden med html 4.01 godkendelsen.

Eller i kildekoden :-)
Så problemet burde ikke opstå :D
Avatar billede Slettet bruger
22. december 2002 - 16:09 #22
Og undskyld billederne *GG* .. men tog bare nogle tilfældige ;-)
Avatar billede tipsen Nybegynder
22. december 2002 - 16:13 #23
sidste række - 2 celler:

<tr><TD><a href="#" OnClick="window.open('gallery/mund/01/backgrounds/16.jpg','lol','menu=no,width=370,height=283');"> <img class='img' src='gallery/mund/01/backgrounds/16.jpg' width='150' height='80' alt=''> </a></td><td></td></tr>

HTML-koden er syntaktisk korrekt - men celleantallet passer alligevel ikke - jeg ved dog heller ikke hvor vigtigt det er, da hverken IE eller Mozilla har problemer med det.
Avatar billede Slettet bruger
22. december 2002 - 16:15 #24
okay, den havde jeg ikke lige set. Kørte den bare igennem w3.org - bliver det godkendt der, burde det også vises korrekt i browseren :)
Avatar billede tipsen Nybegynder
22. december 2002 - 16:18 #25
Spørgsmålet er bare, hvad browseren mener er "korrekt" når celleantallet varierer! Det er jo ikke sikkert at browseren har samme fortolkning som os ;-)
Avatar billede tipsen Nybegynder
22. december 2002 - 16:19 #26
men nu er diskussionen vist også kørt langt nok ud og vi har vist set rigeligt med variationer på samme tema - I'm out of here :)
Avatar billede Slettet bruger
22. december 2002 - 16:20 #27
Det er selvfølgelig rigtig nok :)

jeps, også mig. Skal vist bruge lidt tid på kæresten, og lidt tid væk fra putteren.
Avatar billede kastermester Nybegynder
23. december 2002 - 01:42 #28
www.smartware.webguys.dk/software/download/smartedit/screenshots/ prøv at kigge i sourcen dertil, så burde du kunne regne resten ud selv. Mit helt eget script ;-).
Avatar billede tipsen Nybegynder
23. december 2002 - 01:54 #29
kastermester: Prøv at teste din side i den nyeste mozilla - det falder helt fra hinanden...
Avatar billede kastermester Nybegynder
23. december 2002 - 01:59 #30
Ja det kan vi da vist godt blive enige om. Det må jeg da lige kigge lidt på, og nu har jeg lige siddet og sørget for at dhtml menuen virker ordenligt i de fleste browsere :-(.
Avatar billede kastermester Nybegynder
23. december 2002 - 02:06 #31
Nå, anyways, fixed!
Avatar billede fqthjoe Nybegynder
23. december 2002 - 08:57 #32
Tak for hjælpen til alle. Har lige sat point'ene op, så I alle får 30 point.
Det har I fortjent..
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