1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

PHP Schleife mit Bildern Minimieren / Maximieren

Dieses Thema im Forum "PHP" wurde erstellt von Eurocid, 23. April 2012.

  1. Eurocid

    Eurocid Grünschnabel

    Hallo Leute

    Ich habe wiedermal ein delikates Problem. Ich habe mich heute schon mit Java Script und Jquery
    obwohl ich mich mit beidem nicht so gut auskennen befasst.
    Bin eher auf PHP und/oder CSS eingeschossen.

    Folgendes möchte ich realisieren:

    Ich habe mir eine For-Schleife gebastelt die mir aus einem Ordner alle unter Ordner ausgibt und
    unter jedem ausgegebenen Unterordner (der nur die Überschrift dient) werden wieder über
    eine For-Schleife alle Fotos aufgelistet (als Miniatur Foto 30x30px).

    Beispiel:

    + Ordner A
    - Foto
    - Foto
    - usw...
    + Ordner B
    - Foto
    - Foto
    - usw...

    Hier meine Frage:

    Was kann ich da am besten nehme, wenn ich auf das + Drücken will, und sich die Fotos
    ausblenden sollen.
    Mit einem einzelnen Objekt ist das kein Problem aber wie bau ich das in die Schleife dann ein?

    Kann mir da wer einen denkanstoß geben.

    Grüße Cid
  2. einfach nur crack

    einfach nur crack mag Cookies & Kekse

    In solchen Fällen bieten sich immer Listen an:
    Code (HTML5):
    1. <ul>
    2.   <li>
    3.     <a href="#">+</a> Ordner A
    4.     <ul>
    5.       <li>Foto 1</li>
    6.       <li>Foto 2</li>
    7.     </ul>
    8.   </li>
    9.   <li>
    10.     <a href="#">+</a> Ordner B
    11.     <ul>
    12.       <li>Foto 1</li>
    13.       <li>Foto 2</li>
    14.     </ul>
    15.   </li>
    16. </ul>
    Jetzt kannst du auf die Anker zugreifen und das CLICK-Ereignis überwachen. Je nachdem, wie der Wert ist, den der Anker hat, blendest du eben die folgende Unterliste ein oder aus.
  3. Eurocid

    Eurocid Grünschnabel

    Hallo

    Also ich habe die "Liste" selbst mit DIVs gemacht, was ja normalerweise nicht das problem sein sollte. Wo ich nicht genau weis was ich machen soll ist, dass die <a href>´s automatisch von der Schleife erzeugt werden somit habe ich eine Variable als Wert, für den Anker z.B., welchen Wert könnte ich da als Variable geben und wie kann ich den dann am besten auswerten ?
  4. Lime

    Lime frisch fruchtig

    Um das Beispiel von crack aufzugreifen:
    Code (HTML5):
    1.  
    2. <ul>
    3.   <li>
    4.     <a href="#" id="dir_A">+</a> Ordner A
    5.     <ul id="ul_dir_A">
    6.       <li>Foto 1</li>
    7.       <li>Foto 2</li>
    8.     </ul>
    9.   </li>
    10.   <li>
    11.     <a href="#" id="dir_B">+</a> Ordner B
    12.     <ul id="ul_dir_B">
    13.       <li>Foto 1</li>
    14.       <li>Foto 2</li>
    15.     </ul>
    16.   </li>
    17. </ul>
    18.  
    Nebenbei erzeugst du dann einfach einen javascript/jQuery-Code:
    Code (HTML5):
    1.  
    2. <script type="text/javascript">
    3. $("#dir_A").click(function()  {
    4.     $("#ul_dir_A").toggle();
    5. });
    6. $("#dir_B").click(function()  {
    7.     $("#ul_dir_B").toggle();
    8. });
    9.  
    Den jQuery-Code würde ich parallel in eine Variable speichern und erst am Ende gesammelt ausgeben.

    lg Lime

    PS: document_ready nicht vergessen...
  5. Eurocid

    Eurocid Grünschnabel

    Danke Leute für die Mühe

    Ich habe es ohne irgendwelche JavaScripte gemacht, da bin ich noch zu schwach. :(

    Habe es mit PHP gemacht, habe in die a href einen On/Off Switch eingebaut und auch den anzuzeigenden Ordner mitgeschickt. Danach wird die For-Schleife erst durch betätigung des Links ausgegeben.

    Hier ein Teil des Codes, sollte jemand den ganzen einsehen wollen, schreibt mir einfach, da hängt noch einiges mehr daneben. Dass würde aber zu unübersichtlich werden, wenn ich hier alles reinkopiere. :)

    PHP:
    1. switch($_GET['view'])
    2.         {
    3.             case 'on' :
    4.             for ($i = 0; $i < $count_jpg; $i++)
    5.             {
    6.                 $u = $i + 1;
    7.                 if($_GET['gallery'] == $ort[0])
    8.                 {
    9.                 echo "<div class='pics'><a href='../uploads/gallery/$ordnername[$o]/$ort[0] ($u).JPG' rel='lightbox[roadtrip]' title=''>
    10.                <img src='../uploads/gallery/$ordnername[$o]/$ort[0]_k ($u).JPG' width='65' height='50' alt='' style='border:black solid 1px;'/></a></div>";
    11.                 }
    12.             }
    13.             break;
    14.             default:
    15.         }
    Trotz Danke nochmal für die Denkanstöße

    Grüße Cid
  6. Lime

    Lime frisch fruchtig

    Deine Variante ist zwar nicht schlecht, aber halt auch nicht wirklich dynamisch. Die Seite wird jedes mal neu geladen. Aber wenn dich das nicht stört, ist das vermutlich die beste Variante.
  7. Eurocid

    Eurocid Grünschnabel

    Ja meine ganzen Seiten sind "NOCH" nicht dynamisch. :)

    Hab ziehmlich alles mittels PHP neuaufbauen lassen. Gibt es da ein Problem das ich beachten sollte ?
    Oder gehts hier nur um die Geschwindigkeit ?
  8. Lime

    Lime frisch fruchtig

    Naja, wenn du ne weiße Seite mit schwarzem Text hast, wo nur die Ordnerstruktur angezeigt wird, gehts kaum um Geschwindigkeit. Eher um Ästhetik, weil es "nicht modern" ist, wenn die Seite wegen einem "Ordnerinhalt anzeigen" refreshed wird. :)
    Es gibt dafür auch sicher schon fertige Skripts im Internet, muss man nur mal suchen. Sonst mein Beispiel ist wirklich einfach gehalten und sollte durchaus funktionieren.

Diese Seite empfehlen