Avatar billede teck Nybegynder
15. februar 2005 - 19:59 Der er 3 kommentarer og
1 løsning

vis billeder rigtigt

Hejsa

Jeg har følgende stykke kode:

<?
          $out = "<table>\n";
        $handle = opendir("gfx/gardin2");
            $i = 0;
          while($file = readdir($handle)) {
       
              if($file != '.' && $file != '..' && !is_dir($file) && (ereg(".jpg$", $file) || ereg(".gif$", $file) || ereg(".GIF$", $file) || ereg(".JPEG$", $file) || ereg(".bmp$", $file))) {
         
          $billede = "gfx/gardin2/$file";
       
       
         
          $size = resize($billede);
          $i++;
          if ($i & 1) $out .= "<tr>\n<td><img src='$billede' class='myimg' style='width: ".$size[0]."; height: ".$size[1].";'></td>\n";
          else $out .= "<td><img src='$billede' class='myimg' style='width: ".$size[0]."; height: ".$size[1].";'></td></tr>\n";

  }
          }
          closedir($handle);

$out .= "</table>";
echo $out;
  function resize($billede) {
    $size = getimagesize($billede);
    $max = 90;// Maximum bredde/højde
    $m = max($size[0], $size[1]);
    if ($m > $max) {
        $delta = $max/$m;
        $size[0] = $size[0]*$delta;
        $size[1] = $size[1]*$delta;
    }
    return $size;
}
?>

som det ser ud nu tager koden billeder fra et bibliotek og viser dem sådan her:

1 2
3 4
5 6
og så videre

Problemet er bare at jeg gerne vil have koden til at komme sådan her:

1 2 3 4
5 6 7 8
9 10 og så videre

jeg ved bare ikke hvordan koden skal laves om, håber der er en der kan hjælpe!
Avatar billede greew Nybegynder
15. februar 2005 - 20:22 #1
Jeg er ikke helt sikker på, hvorfor du kun får 2 kolonner ud ved hver række.. Men jeg har prøvet at ændre i koden, så det burde kunne fungere..

<?
    $out = "<table>\n";
    $handle = opendir("gfx/gardin2");
    $i = 0;
    while($file = readdir($handle)) {
            if($file != '.' && $file != '..' && !is_dir($file) && (ereg(".jpg$", $file) || ereg(".gif$", $file) || ereg(".GIF$", $file) || ereg(".JPEG$", $file) || ereg(".bmp$", $file))) {
            if ($i == 0)
                $out .= "<tr>";

            $billede = "gfx/gardin2/$file";
            $size = resize($billede);

            $out .= "<td><img src='$billede' class='myimg' style='width: ".$size[0]."; height: ".$size[1].";'></td>\n";

                        $i++;
            if ($i == 5) {
                out .= "</tr>";
                $i = 0;
            }

        }
    }
    closedir($handle);

    $out .= "</table>";
    echo $out;
    function resize($billede) {
    $size = getimagesize($billede);
    $max = 90;// Maximum bredde/højde
    $m = max($size[0], $size[1]);
    if ($m > $max) {
        $delta = $max/$m;
        $size[0] = $size[0]*$delta;
        $size[1] = $size[1]*$delta;
        }
    return $size;
}
?>

Jeg håber det fungerer. Jeg har kun lige hurtigt smidt det sammen.
Avatar billede teck Nybegynder
15. februar 2005 - 20:49 #2
takker, det virker perfekt :)... smid et svar og så vanger der lidt point ;o)
Avatar billede greew Nybegynder
15. februar 2005 - 20:54 #3
Værsågod :-)
Avatar billede greew Nybegynder
15. februar 2005 - 20:55 #4
PS: Hvis du vil ændre antallet af kolonner i en række, så skift $i == 5 ud til at være $i == antal kolonner + 1..

Derudover skal det lige kommenteres, at hvis der ikke altid er 4 billeder i rækken, bliver </tr> ikke sat, og tabellen bliver dermed ikke lukket korrekt. Mange gange ser det ens ud grafisk, men jeg kan ikke garantere det hver gang :-)
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