13. december 2003 - 12:31
Der er
7 kommentarer og 1 løsning
Hjælp til billedgalleri!
Hej eksperter, Jeg har et billedearkiv. Det er jeg godt tilfreds med, bortset fra een ting: Hvis man f. eks. har 45 billeder. deler den dem og på sider af 15 pr. styk, og det er godt nok. Men, man kan ikke se hvor mange sider den laver. Der viser bare << >>. ---- Derfor vil jeg gerne spørge: Er der nogle der kan hjælpe mig med at lave det sådan: ex. << 1 2 3 4 5 6 7 8 9 >> ? Herunder er koderne i billedgalleriet: gall.php <html> <head> <script type="text/javascript"> function PopUp(pic) { window.open("popup.php?pic="+pic,"Titel","width=100,height=100"); } </script> </head> <body> <?php #Indstillinger $sum = 4; // Antal billeder ved siden af hinanden $sumcount = 1; $imgwidth = 100; // Billedets bredde $imgheight = 100; // Bileddets højde $mappe = "billeder"; // Mappen med billeder $pr_side = 15; // Antal billeder pr. side if (isset($_GET['offset'])) { $offset = $_GET['offset']; } else { $offset = 0; } $pics = $offset+$pr_side; $i = $offset; # Laver et array med billederne, så vi senere kan sortere dem alfabetisk $handle = opendir($mappe); while (($fil = readdir($handle)) !== false) { if ($fil != "." && $fil != ".." && !is_dir($mappe."/".$fil)) { $billeder[] = "$fil"; } } closedir($handle); # Udskriver billederne sort($billeder); while($i < $pics && $billeder[$i] != "") { echo "<a href=\"java script: PopUp('$mappe/$billeder[$i]')\"><img src=\"$mappe/$billeder[$i]\" border=\"1\" width=\"100\" height=\"100\"></a> "; if ($sumcount == $sum) { $sumcount = 0; echo "<br>"; } $sumcount++; $i++; } ?> <hr> <?php #Udskriver frem og tilbage links if ($offset >= $pr_side) { $forrige = $offset-$pr_side; echo "<a href=\"?offset=$forrige\">Forrige</a> "; } if (count($billeder) > $offset+$pr_side) { $naeste = $offset+$pr_side; echo "<a href=\"?offset=$naeste\">Næste</a>"; } ?> </body> </html> --------------------------- popup.php <html> <head> <title>Stort billede</title> <script> function resize() { imgHeight = document.all.imgID.height; imgWidth = document.all.imgID.width; screenWidth = imgWidth+16; screenHeight = imgHeight+29; window.resizeTo(screenWidth,screenHeight); window.focus(); } </script> </head> <body onload="resize()" style="margin: 0px"> <img src="<?php echo $_GET['pic']; ?>" id="imgID"> </body> </html>
Annonceindlæg fra Cognizant
Agentic AI kræver mere end teknologi
De fleste virksomheder har efterhånden bevist, at AI virker.
Pilotprojekter leverer resultater. Medarbejdere bruger generative AI-værktøjer. Nye use cases dukker op på tværs af organisationen.
13. december 2003 - 13:27
#1
Prøv at bytte: <?php #Udskriver frem og tilbage links if ($offset >= $pr_side) { $forrige = $offset-$pr_side; echo "<a href=\"?offset=$forrige\">Forrige</a> "; } if (count($billeder) > $offset+$pr_side) { $naeste = $offset+$pr_side; echo "<a href=\"?offset=$naeste\">Næste</a>"; } ?> ud med: <?php #Udskriver frem og tilbage links $antal_billeder = count($billeder); $antal_sider = floor($antal_billeder/$pr_side)-1; if ($offset >= $pr_side) { $forrige = $offset-$pr_side; echo "<a href=\"?offset=$forrige\">Forrige</a> "; } else { echo "Forrige "; } if ($antal_sider>0) { for ($i=0;$i<=$antal_sider;$i++) { $naeste = $i*$pr_side; echo "<a href=\"?offset=$naeste\">".($i+1)."</a> "; } } if ($antal_billeder > $offset+$pr_side) { $naeste = $offset+$pr_side; echo "<a href=\"?offset=$naeste\">Næste</a>"; } else { echo "Næste"; } ?>
13. december 2003 - 13:32
#3
hmm... rettede lige lidt: <?php #Udskriver frem og tilbage links $billeder = range(1, 21); $antal_billeder = count($billeder); $antal_sider = floor($antal_billeder/$pr_side); if ($offset >= $pr_side) { $forrige = $offset-$pr_side; echo "<a href=\"?offset=$forrige\">Forrige</a> "; } else { echo "Forrige "; } if ($antal_sider>0) { for ($i=0;$i<=$antal_sider;$i++) { $naeste = $i*$pr_side; echo "<a href=\"?offset=$naeste\">".($i+1)."</a> "; } } if ($antal_billeder > $offset+$pr_side) { $naeste = $offset+$pr_side; echo "<a href=\"?offset=$naeste\">Næste</a>"; } else { echo "Næste"; } ?>
13. december 2003 - 13:35
#4
Sorry, den range skulle selvfølgelig ikke med (var kun til test): <?php #Udskriver frem og tilbage links $antal_billeder = count($billeder); $antal_sider = floor($antal_billeder/$pr_side); if ($offset >= $pr_side) { $forrige = $offset-$pr_side; echo "<a href=\"?offset=$forrige\">Forrige</a> "; } else { echo "Forrige "; } if ($antal_sider>0) { for ($i=0;$i<=$antal_sider;$i++) { $naeste = $i*$pr_side; echo "<a href=\"?offset=$naeste\">".($i+1)."</a> "; } } if ($antal_billeder > $offset+$pr_side) { $naeste = $offset+$pr_side; echo "<a href=\"?offset=$naeste\">Næste</a>"; } else { echo "Næste"; } ?>
13. december 2003 - 13:39
#6
Hov lige en lille forbedring så den ikke lave links til den aktuelle side: <?php #Udskriver frem og tilbage links $antal_billeder = count($billeder); $antal_sider = floor($antal_billeder/$pr_side); if ($offset >= $pr_side) { $forrige = $offset-$pr_side; echo "<a href=\"?offset=$forrige\">Forrige</a> "; } else { echo "Forrige "; } if ($antal_sider>0) { for ($i=0;$i<=$antal_sider;$i++) { $naeste = $i*$pr_side; if ($naeste != $offset) echo "<a href=\"?offset=$naeste\">".($i+1)."</a> "; else echo ($i+1)." "; } } if ($antal_billeder > $offset+$pr_side) { $naeste = $offset+$pr_side; echo "<a href=\"?offset=$naeste\">Næste</a>"; } else { echo "Næste"; } ?>