Gå til innhold

Legge alle bilder i ei mappe i en list box..


Anbefalte innlegg

Hei!

 

Som topicet sier: Hvordan kan jeg gjøre til slik at alle bilder som ligger i ei mappe blir listet opp i en listbox/dropdown box elr hva det heter:P Hvertfall en slik som vi kan velge skrift farge, størrelse osv på når vi skriver innlegg..:)

 

Takk for svar!

Lenke til kommentar
Videoannonse
Annonse

Dette burde legge alle relevante filer inn i et array:

// mappen du ønsker å åpne
$mappe = '/home/olav/hemmelige_filer';

// filendelser/-typer du ønsker å ha med i listen
$typer = array('jpg', 'gif', 'png');

// kjører gjennom valgt mappe og henter ut valgte filtyper
if ($handle = opendir($mappe)) {

  while (false !== ($file = readdir($handle))) {
     if (in_array(array_pop(explode('.', $file)), $typer)) {$filer[] = $file;}
  }

  closedir($handle);
} else {
  echo "Kunne ikke lese mappen \"$mappe\"";
}

 

Nå skal variablen $filer inneholde alle filer av typen $typer som finnes i $mappe. Hvordan du velger å bygge opp din rullegarinmeny med denne informasjonen, blir opp til deg. Et lite tips kan være å slå opp "select" hos w3schools.

Endret av gozzer
Lenke til kommentar

Hei! Tusen takk for svar! Men jeg får bare denne feil mld:

Fatal error: Only variables can be passed by reference in i:\shop\admin\ny_produkt.php on line 187

 

Linje 187 ser slik ut:

if (in_array(array_pop(explode('.', $file)), $typer)) {$filer[] = $file;}

 

 

Edit: jeg får ikke denne feil meldingen hvis jeg feks skriver inn feil mappe navn, men da får jeg jo meldingen om at mappen ikke eksisterer:P

Endret av 0lav
Lenke til kommentar

Hehe, sånt skjer :-)

 

Hvis du bytter ut

if (in_array(array_pop(explode('.', $file)), $typer)) {$filer[] = $file;}

 

... med

$temp = explode('.', $file);
$temp = array_pop($temp);
if (in_array($temp, $typer)) {$filer[] = $file;}

... så burde det gå bedre.

 

Jeg vet ikke hvilken av funksjonene som ikke likte den første måten å gjøre det på, derfor splitta jeg heller alle fra hverandre.

 

Fremdeles ikke testet noe av koden personlig, men det er grenser for hvor mange feil man burde få til med en så liten kodesnutt ;)

Lenke til kommentar

Takk for svar igjen så sent! Fikk ingen feil mld nå, og tror det skal funke. Men fikk ikke til å printe ut navnene.. Skal ikke dette funke?:

 

if (in_array($temp, $typer)) {$filer[] = $file;}

print("<option value=\"" .$filer . "\">" . $filer . "</option>");

}

print("</select>");

 

Edit: Fikk det til nå, men det står kun "Array" i det som blir hentet ut..

Endret av 0lav
Lenke til kommentar
Takk for svar igjen så sent! Fikk ingen feil mld nå, og tror det skal funke. Men fikk ikke til å printe ut navnene.. Skal ikke dette funke?:

 

if (in_array($temp, $typer)) {$filer[] = $file;}

print("<option value=\"" .$filer . "\">" . $filer . "</option>");

}

print("</select>");

 

Edit: Fikk det til nå, men det står kun "Array" i det som blir hentet ut..

Dette er fordi du må hente ut en bestemt array, ikke hele samtidig :)

Hvis du har filnavnene i en array, ville jeg valg:

 

foreach($filer as $filnavn)

{

print "<option value=\"".$filnavn."\">".$filnavn."</option> ";

}

Endret av Axentrix
Lenke til kommentar

Alt funker som det skal nå. Men er en liten ting til som jeg lurte på om var mulig:

Kan man sette en limit funksjon elns? Slik at jeg kan bruke neste side og forige side osv.. Jeg får til å lage det hvis noen kan hjelpe meg med hvordan jeg får til en limit funksjon på det scriptet.. Takk!

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...