Ankündigung

Einklappen
Keine Ankündigung bisher.

Mehrspaltige Bilder-Gallerie

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Gast-Avatar
    Ein Gast erstellte das Thema Mehrspaltige Bilder-Gallerie.

    Mehrspaltige Bilder-Gallerie

    Hallo zusamme,

    wie schaffe ich es mit folgendem Script die Bilder (die aus einem Verzeichnis ausgeladen werden) mehrspaltig anzuzeigen. So wie die Datei jetzt ist, werden leider nur alle Bilder unter einander angezeigt.

    Code:
    <table border="0" cellpadding="2" cellspacing="3"> 
    <?php 
    
    $Pfad="."; 
    
    if($Verzeichniszeiger=opendir($Pfad)) 
    { 
       while($Datei=readdir($Verzeichniszeiger)) 
       { 
          if($Datei!="." && $Datei!="..") 
          { 
             $Bilddaten=getimagesize($Datei); 
             if($Bilddaten[2]==1 || $Bilddaten[2]==2 || $Bilddaten[2]==3) 
             { 
    ?> 
     <tr> 
      <td><img height="<?php echo$Bilddaten[1]; ?>" src="<?php echo$Datei; ?>" title="<?php echo$Datei; ?>" width="<?php echo$Bilddaten[0]; ?>"></td> 
     </tr> 
     <tr> 
      <td>Dateiname: <?php echo$Datei; ?>
    Dateigröße: <?php echo filesize($Datei); ?> Bytes
    Bildgröße: <?php echo$Bilddaten[0]; ?> x <?php echo$Bilddaten[1]; ?> Pixel</td> 
     </tr> 
    <?php 
             } 
          } 
       } 
       closedir($Verzeichniszeiger); 
    }  
    
    ?> 
    </table>
    Ich weiss dass es mit col=0 und row=0 oder mit foreach gehen muss, aber ich bekomme es einfach nicht hin.

  • Zergling-new
    antwortet
    Zitat von sus22
    Und nun öffnet sich kein Popup und ein Javascript Fehler wird ausgegeben.
    Warum nennst du ihn uns nicht???

    Und warum schreibst du mit JavaScript HTML Code? Verlink doch einfach auf eine PHP-Datei, der du eine Bild-Adresse oder -ID übergeben kannst?

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    So, hab nun meine ersten Versuche bezüglich Javascript gewagt.

    Und nun öffnet sich kein Popup und ein Javascript Fehler wird ausgegeben. Diese beiden Sprachen funktionieren auch einfach nicht so, wie man es haben will.

    Hier mal mein erarbeiteter Code:

    Code:
    <!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html <?php echo HTML_PARAMS; ?>>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=<?php echo CHARSET; ?>">
    </head>
    <body>
    
    
    <script language="JavaScript">
    <!-- 
    function FensterZeigen(w_1,w_2,w_3,w_4)
       {
       bild = w_1;
       titel = w_2;
       breite = w_3;
       hoehe = w_4;
       if(navigator.appName == "Netscape") // Navigator stellt die Grafik nur mit Rand links und oben dar. 
          {
          fensterhoehe = hoehe + 15;
          fensterbreite = breite + 15;
          }
    
       else
          {
          fensterhoehe = hoehe;
          fensterbreite = breite;
          }
       bedingungen = 'toolbar=0,location=0,menubar=0,scrollbars=0,resizable=0,height='+fensterhoehe+',width='+fensterbreite;
       fenster = open("","",bedingungen)
       fenster.document.open(); 
       with (fenster)
          {
          document.write('<html><head><title>' + titel + '</title></head>');
          document.write('<body onblur="window.close()" leftmargin="0" topmargin="0">');
          document.write('[img]'+ bild +'[/img]');
          document.write('</body></html>');
          }
         fenster.document.close();
       }
    //-->
    </script>
    <?php 
    error_reporting(E_ALL); 
    
    $pattern = '*.jpg'; 
    $spalten = 3; 
    
    $temp = array(); 
    foreach ( glob( $pattern ) as $file) { $temp[] = $file; } 
    
    $new_temp = array_chunk($temp, $spalten); 
    
    // print_r($new_temp); 
    
    foreach ( $new_temp as $temp2 ) { 
    ?>
    <a href="JavaScript:FensterZeigen('
    <?php
       foreach ( $temp2 as $v )
    echo $v; 
    ?>
    ','Kira',512,384)">
    <?php echo $v; ?></a>
    <?php
       echo '
    '; 
    }
    ?>
    
    </body>
    </html>

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Bei der Ausgabe wird ich aber dann noch bissel formatieren, was man sicher mit CSS recht gut hinbekommt.
    Auch ist es möglich die Ausgabe zu teilen, z.B. Bilder 1 - 10, 11 - 20 etc...
    Der Fantasie sind keine Grenzen gesetzt

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Genial. Vielen Dank CIX88. Jetzt muss ich es nur noch hin bekommen, dass sich bei Klick ein Popup öffnet.

    Und so siehts aus:
    http://syberia.sy.funpic.de/pics/pics.php

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Den Code schreibe ich dir zwar nicht um, aber nur ein Lösungsansatz:

    PHP-Code:
    <?php
    error_reporting
    (E_ALL);

    $pattern '*.jpg';
    $spalten 3;

    $temp = array();
    foreach ( 
    glob$pattern ) as $file) { $temp[] = $file; }

    $new_temp array_chunk($temp$spalten);

    // print_r($new_temp);

    foreach ( $new_temp as $temp2 ) {
       foreach ( 
    $temp2 as $v ) echo $v.' - ';
       echo 
    '
    '
    ;
    }

    ?>

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Eregbnis zu sehen auf:
    http://syberia.sy.funpic.de/pics/pics.php

    Er werden weiterhin nur die Bilder untereinander angezeigt.

    Code:
    <table border="0" cellpadding="2" cellspacing="3"> 
    <?php 
    
    $Pfad="."; 
    
    if($Verzeichniszeiger=opendir($Pfad)) 
    { 
       while($Datei=readdir($Verzeichniszeiger)) 
       { 
          if($Datei!="." && $Datei!="..") 
          { 
             $Bilddaten=getimagesize($Datei); 
             if($Bilddaten[2]==1 || $Bilddaten[2]==2 || $Bilddaten[2]==3) 
             { 
      $row = 0;
      $col = 0;
    ?> 
     <tr> 
      <td><img height="<?php echo$Bilddaten[1]; ?>" src="<?php echo$Datei; ?>" title="<?php echo$Datei; ?>" width="150"></td> 
     </tr> 
    <?php 
        $col ++;
        if ($col > 3) {
          $col = 0;
          $row ++;
        }
             } 
          } 
       } 
       closedir($Verzeichniszeiger); 
    }  
    
    ?> 
    </table>

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Wenn möglich auch Fehlermeldungen mal mit posten.
    Keiner hier ist Hellseher oder hat telepathische Fähigkeiten

    Einen Kommentar schreiben:


  • Zergling-new
    antwortet
    Poste doch einfach deinen Code, dann verbessern wir ihn

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    So ähnlich wie es CIX88 geschrieben hat, habe ich es auch ausprobiert. Ich kriege es bloß nicht ohne Fehlermeldungen in den obigen Code.
    Ist jemand so lieb und könnte mir in den obigen Code direkt die mehrspaltige Ansicht einbauen.

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    mehrspaltig anzuzeigen
    Hmmm, wie ist das denn gemeint ?
    Bis jetzt sehe ich nur eine.

    Andere Möglichkeit, den jeweiligen Ordner mittels glob() auslesen und in ein Array() packen.
    Das ganze dann z.B. mittels array_chunk() in Einzelteile zerlegen (klingt gut).
    Und diese dann ausgeben.

    http://www.cix88.de/cix_php/php_web/...he_tabelle.php

    Ist eigentlich nichts anders ....

    Einen Kommentar schreiben:


  • xabbuh
    antwortet
    Zitat von sus22
    Modulo? Das hab ichn och nie gehört.
    Der Modulo-Operator liefert dir den ganzzahligen Rest einer Division: http://www.php.net/manual/en/languag...arithmetic.php

    Zitat von sus22
    Kannst du mir sagen, wie ich in den obigen Script einbauen kann?
    Du baust eine Variable in dein Script ein, die bei jedem Durchlauf der while-Schleife inkrementiert (um 1 erhöht) wird. Dann kannst du bei jedem Durchlauf der Schleife mit dem Modulo-Operator überprüfen, ob die Zahl durch 2 teilbar ist und fängst gegegebenenfalls eine neue Zeile an.

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Modulo? Das hab ichn och nie gehört.
    Kannst du mir sagen, wie ich in den obigen Script einbauen kann?

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Das wäre wohl ein Fall für Modulo (%).

    Einen Kommentar schreiben:

Lädt...
X