23. maj 2004 - 16:39Der er
17 kommentarer og 2 løsninger
Lave next og prev links på fullsize billede i galleri.
Hej Jeg har lavet et simpelt galleri der viser thumbs for alle billeder i en mappe. Når man klikker på thumb'en bliver den vist i fuld størrelse, her vil jeg gerne have links til previous og next billede. Jeg ved bare ikke rigtigt hvordan jeg smart skal gøre det, for jeg har jo alt infoen i php-filen der viser thumbs'ne, men den skal jeg så have givet videre til php-filen der viser det store billede. Jeg har tænkt på at tilføje alle filnavne til et array, men det synes jeg ikke rigtigt at kunne få givet videre til php-filen der skal vise det store billede. Hvordan kan jeg rimeligt let sørge for at 2.php har fuldt kendskab til et array der genereres i 1.php. Register globals er sat til off.
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
du giver alle billederne et nummer derefter laver du en global variabel ($_GET[]) så laver du en løkke køre igennem 10 gange og returnere et billede hver gang hvis $_GET[] så er 1 tager den alle billederne fra 1 til 11 hvis $_GET[] er 10 tager den alle billederne fra 10 til 20
sukos > jeg linker med filnavnet: file.php?image=path_image.jpg.
dorgbar > Jeg forstår ikke helt, det må du meget gerne uddybe. Jeg vil lave en side jeg linker til med filnavnet, problemet er så at jeg ikke ved hvad forrige og næste element i mappen hedder, derfor vil jeg gerne have denne info tilgængelig i file.php. Jeg ved ikke helt om du også har forstået det sådan, hvis du må du meget gerne uddybe.
ahh, vi snakker vist forbi hinanden, jeg snakker ikke om at lave en indexfil, jeg snakker om at lave den side hvor fullsize billederne er på, der vil jeg have et frem og et tilbage link som skal linke til næste og forrige billede. Derfor bliver den fil der skal vise det store billede jo nødt til at have kendskab til alle billeder i mappen, altså til arrayet.
Hvis du i den fil som viser det store billede, læser det dir igennem hvor de store billeder findes, kan du putte dem i et array. Det er mit indtryk at php er hurtig til at læse dirs.
Derefter tjekker om filen rent faktisk findes, altså er i array'et
if(in_array($_GET["image"], $filer)) { ......vis billede................. }else{ ......biledet findes ikke....... }
Hvis filen findes, er i array'et, kan du bruge denne til at finde placeringen i array'et:
function get_var($navn, $var="") { global $filer; // array'et med filnavne $key = array_search($navn, $filer); if(empty($var)) { // $var er tom, så det skal være "forrige" return @$filer[$key-1]; }else{ return @$filer[$key+1]; } }
Derefter, for at finde ud af om der skal være et forrige/næste link:
function get_var($navn, $var="") { global $filer; // array'et med filnavne $key = array_search($navn, $filer); if(empty($var)) { // $var er tom, så det skal være "forrige" return @$filer[$key-1]; }else{ return @$filer[$key+1]; } }
echo"Blot til at starte med: <a href=\"". $_SERVER["PHP_SELF"] ."?image=morgensol.jpg\">morgensol.jpg</a>"; echo"<p>";
Jeg tror desværre vi snakker lidt forbi hinanden stadigvæk. Jeg har allerede en side med thumbs, der løber jeg mappen igennem. Jeg åbner det store billede i et nyt vindue, altså en ny fil. Jeg vil gerne undgå at løbe hele mappen igennem hver gang et stort billede skal vises. Derfor vil jeg tilføje alle billeder til et array på index-siden, altså siden med thumbs. Dette array vil jeg gerne have er tilgængeligt på siderne der viser de store billeder. Jeg kunne sagtens løbe hele mappen igennem hver gang et stort billede skal vises, så ville jeg ikke behøve at bruge et array overhovedet, men hvis jeg kan lave arrayet globalt tilgængeligt vil jeg for at løbe hver mappe igennem mere end 1 gang for hver besøgende. Så hvordan kan jeg gøre arrayet globalt tilgængeligt.
sukos > tak fordi du har gidet skrive alt det kode, men jeg kan ikke rigtigt bruge det til noget lige umiddelbart da det ikke løser mit problem ordentligt så vidt jeg ser.
dorgbar > Jeg vil helst kalde siden med et tal, men det kræver jo at jeg har filnavnene i et array, det har jeg ikke pt da jeg ikke kan tilgå arrayet fra side 2 når det er oprettet på side 1, det er der mit problem ligger.
okay, det lyder som om sessions er vejen frem, men jeg synes bare det er lidt tosset at skulle lave sessions når det er det samme array alle brugere skal bruge. Jeg prøver at kigge på det og se om jeg kan få det til at køre.
Du kan ikke lave et array på en side, og så få en helt anden side til at finde det array medmindre du "gør et eller andet", som session eller cookie, f.eks.
Du kan også bruge txt filer, til at gemme filnavne, og så lade hver side læse den igennem. Så er du også sikker på at alle kan se billeder, uanset browserindstillinger for cookies.
Jeg har endnu ikke lavet det med sessions. Jeg synes ikke det er så overdrevet smart til formålet i forhold til at gennemløbe mappen hver gang. Galleriet skal være så simpelt som muligt at opdatere, derfor vil jeg ikke bruge en database da dette vil medføre at jeg enten ikke kan uploade via ftp uden at skulle ind på en admin-side og opdatere databasen, ellers skal jeg uploade via en admin-side, men det vil betyde at jeg skal definere hver enkelt fil der skal uploades. Så derfor har jeg valgt at gennemløbe mappen hver gang en indexside skal vises. Men for at vise links til forrige og næste på den side der viser det store billede er jeg jo nødt til at kende til hele indholdet af mappen. Så det er lidt af et dilemma, den mest elegante løsning vil kræve at billednavne holdes i en database, men det vil kræve lidt mere at vedligeholde. Den letteste løsning at vedligeholde er jo den jeg har tænkt mig, men den er vel ikke så effektivt. Har jeg overset noget? Hvordan ville i gøre det når det skal være så let at opdatere som muligt?
sukos > Hvis du vil ligge et svar, så får du halvdelen af pointene.
Nemmeste er jo nok blot at uploade billeder til en mappe, som så læses igennem. Hvis du ikke vil læse dir'et igennem to gange, 1 ved thumbs og 1 ved visning af stort billede, så brug session til at gemme billeder 1. gang du læser igennem.
Hvis du bruger DB, har du jo mulighed for at f.eks. kommentere de enkelte billeder. Dette kunne nu osse gøres ved at ha' en txtfil med navnet billedenavn.txt
Tak for hjælpen til jer begge, jeg er nu i fuld gang med at lave galleriet og kan lige smide et link når jeg er færdig så i kan se det endelige resultat.
Synes godt om
Ny brugerNybegynder
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.