Avatar billede dotcom1 Nybegynder
28. december 2004 - 17:46 Der er 14 kommentarer og
1 løsning

Javascript-popup i php-script

Bruger denne kode til at vise thumbnails af de billeder, der ligger i den angivede folder. Når man klikker på et thumbnail-billede, vises det i original størrelse på en ny side.

Scriptet:

<?php

function listFiler($bibliotek) {

  if($bib = @opendir($bibliotek)) {

    while (false !== ($fil = readdir($bib))) {
      if($fil != "." && $fil != ".." && !ereg("^\..+", $fil)) {
          $fil_liste[] = "<a href=\"$bibliotek/$fil\" target=_blank><img src=\"$bibliotek/$fil\" width=\"100px\" height=\"100px\" border=\"0\" alt=\"$fil\" style=\"border:1px solid #666;\"></a>";
      }
    }
    closedir($bib);

    if(is_array($fil_liste)) {
      $liste = join(" ", $fil_liste);
    } else {
      $liste = "Ingen filer p&aring; lager...";
    }
    return ""
    #. "Klik p&aring; et billede for at se det i original st&oslash;rrelse.<br />\n"
    #. "<br />\n"
    . "$liste";
  } else {
    die("Kunne ikke &aring;bne mappen: " . $bibliotek);
  }
}

echo listFiler("fotos"); //mappenavn

?>

Jeg kunne godt tænke mig at når originalerne åbnes, så vises de i et popupvindue, der tilpasser sig størrelsen på billedet, fx. som i scriptet her: http://www.bokaj.dk/eksperten/gribben/ (Vis kilde.) Kan dette javascript-popup tilpasses ovennævnte php-kode?

Mvh.
Avatar billede jakobdo Ekspert
28. december 2004 - 18:01 #1
Altså selve window.open har jo mulighed for at sætte height og width!
Dem kan du jo så udlæse fra dine billeder og så lave en javascript dynamisk!

Jeg kan godt give det et forsøg!
Avatar billede dotcom1 Nybegynder
28. december 2004 - 18:02 #2
Det må du meget gerne...kan ikke lige se mig ud af det... :)
Avatar billede dotcom1 Nybegynder
28. december 2004 - 18:03 #3
Hehe, måske er det dig, der er bokaj.dk?
Avatar billede coderdk Praktikant
28. december 2004 - 18:05 #4
Du skal ændre:

      if($fil != "." && $fil != ".." && !ereg("^\..+", $fil)) {
          $fil_liste[] = "<a href=\"$bibliotek/$fil\" target=_blank><img src=\"$bibliotek/$fil\" width=\"100px\" height=\"100px\" border=\"0\" alt=\"$fil\" style=\"border:1px solid #666;\"></a>";
      }

Noget i stil med:

      if($fil != "." && $fil != ".." && !ereg("^\..+", $fil)) {
          list($w, $h, $x, $x) = getimagesize( "$bibliotek/$fil" );
          $fil_liste[] = "<a href=\"java script:popit('$bibliotek/$fil\', $w, $h)" target=_blank><img src=\"$bibliotek/$fil\" width=\"100px\" height=\"100px\" border=\"0\" alt=\"$fil\" style=\"border:1px solid #666;\"></a>";
      }

og i toppen af siden smid noget i stil med:

<script type="text/javascript">
  function popit( fil, w, h )
  {
    w = window.open( fil, 'billede', 'width='+(w+10)+', height='+(h+10)+', menubar=no, toolbar=no, resizable=no' );
  }
</script>
Avatar billede jakobdo Ekspert
28. december 2004 - 18:07 #5
CoderDK var hurtigst! :o)
Avatar billede dotcom1 Nybegynder
28. december 2004 - 18:10 #6
coderdk: Parse error i linie 91, som er den her:

$fil_liste[] = "<a href=\"java script:popit('$bibliotek/$fil\', $w, $h)" target=_blank><img src=\"$bibliotek/$fil\" width=\"100px\" height=\"100px\" border=\"0\" alt=\"$fil\" style=\"border:1px solid #666;\"></a>";
Avatar billede coderdk Praktikant
28. december 2004 - 18:11 #7
Manglede en \ :)

$fil_liste[] = "<a href=\"java script:popit('$bibliotek/$fil\', $w, $h)\" target=_blank><img src=\"$bibliotek/$fil\" width=\"100px\" height=\"100px\" border=\"0\" alt=\"$fil\" style=\"border:1px solid #666;\"></a>";
Avatar billede dotcom1 Nybegynder
28. december 2004 - 18:14 #8
Nu får jeg ingen parse error og thumbnail-billederne vises fint, men der sker ikke noget når man klikker på dem? Kun et blank vindue i fuld størrelse. Har sat:
<script type="text/javascript">
  function popit( fil, w, h )
  {
    w = window.open( fil, 'billede', 'width='+(w+10)+', height='+(h+10)+', menubar=no, toolbar=no, resizable=no' );
  }
</script>

- i head.
Avatar billede coderdk Praktikant
28. december 2004 - 18:21 #9
Hmm jeg har lige testet med dette:

<script type="text/javascript">
  function popit( fil, w, h )
  {
    w = window.open( fil, 'billede', 'width='+(w+25)+', height='+(h+15)+', menubar=no, toolbar=no, resizable=no' );
  }
</script>

<a href="java script:popit( 'et_billede.png', 198, 78 )">klik</a>

Og det virkede fint? Har du en popup-blocker eller sådan noget? (Bemærk jeg ændrede (w+10) og (h+10) til noget der passede lidt bedre til min browser, det kan du også gøre :)
Avatar billede coderdk Praktikant
28. december 2004 - 18:22 #10
Btw du bør fjerne: target="_blank" i din <a href
Avatar billede coderdk Praktikant
28. december 2004 - 18:23 #11
^^ det er nok den target der gør det!
Avatar billede dotcom1 Nybegynder
28. december 2004 - 18:29 #12
Når jeg fjerner target, sker der intet. I Firefox' javascript konsol, kan jeg se at den melder fejl: Unterminated string literal. Siger det dig noget?
Avatar billede coderdk Praktikant
28. december 2004 - 18:45 #13
$fil_liste[] = "<a href=\"java script:popit('$bibliotek/$fil\', $w, $h)" target=_blank><img src=\"$bibliotek/$fil\" width=\"100px\" height=\"100px\" border=\"0\" alt=\"$fil\" style=\"border:1px solid #666;\"></a>";`

skal nok være:

$fil_liste[] = "<a href=\"java script:popit('$bibliotek/$fil', $w, $h)" target=_blank><img src=\"$bibliotek/$fil\" width=\"100px\" height=\"100px\" border=\"0\" alt=\"$fil\" style=\"border:1px solid #666;\"></a>";
Avatar billede dotcom1 Nybegynder
28. december 2004 - 18:50 #14
Så lykkedes det! Faktisk skal den se sådan ud:
$fil_liste[] = "<a href=\"java script:popit('$bibliotek/$fil', $w, $h)\"><img src=\"$bibliotek/$fil\" width=\"100px\" height=\"100px\" border=\"0\" alt=\"$fil\" style=\"border:1px solid #666;\"></a>";

Tusind tak for din hjælp! :)
Avatar billede coderdk Praktikant
28. december 2004 - 18:53 #15
:) np
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