Pampel: 2-Dimensionales Array

Hallo zusammen,

gestern hatte ich schon mal danach gefragt und mittlerweile auch schon einiges ausprobiert.

In einem www-Projekt gibt es mehrere Bildergalerien. Die Projekte werden mit kleinen Vorschaubildern (z.B. 10 Bilder) auf einer Seite präsentiert. Klickt man auf eines der Bilder, dann öffnet sich ein neues Fenster mit dem großen Bild.

Das Script, das ich dazu verwende, schreibt aber keine Texte unter das Bild, so wie ich das gerne hätte. Für das erste Projekt habe ich das schon geschafft. Nun stellt sich aber die Frage, wie ich mein Array am Besten aufbaue.

Bei den Antworten gestern ist mir beim Ausprobieren aufgefallen, dass sie nicht berücksichtigen, dass die verschiedenen Projekte unterschiedliche Anzahlen von Bildern haben können.

Vom Prinzip her habe ich mir das so vorgestellt: Beim Klick auf ein kleines Bild wird dem bisherigen Aufruf ein neuer Parameter 'projektnr' zusätzlich mitgegeben. Das JS-Script ermittelt anhand dieses Parameters die zu diesem Projekt gehörenden Bildunterschriften.

Wie gesagt, das Diashow-Script läuft, bei einem Projekt werden auch die Texte richtig eingeblendet. Es geht mir jetzt nur darum, wie ich ein Array richtig definiere, das berücksichtigt, dass es für die verschiedenen Projekte jeweils eine unterschiedliche Anzahl von Bildern geben kann.

Kann es z.B. Sinn machen, für die Projekte und für die Texte jeweils ein eigenes Array zu definieren und die dann 'irgendwie' zu kombinieren? Nur da habe ich halt leider keine Erfahrung.

Vielen Dank für Hinweise.

Gruß,

Stefan

  1. In einem www-Projekt gibt es mehrere Bildergalerien. Die Projekte werden mit kleinen Vorschaubildern (z.B. 10 Bilder) auf einer Seite präsentiert. Klickt man auf eines der Bilder, dann öffnet sich ein neues Fenster mit dem großen Bild.

    Das Script, das ich dazu verwende, schreibt aber keine Texte unter das Bild, so wie ich das gerne hätte. Für das erste Projekt habe ich das schon geschafft. Nun stellt sich aber die Frage, wie ich mein Array am Besten aufbaue.

    Kommt drauf an, wieviel Informationen du da einbauen willst.

    Welche Eigenschaften haben die Bilder?
    Hat ein Projekt noch spezifische Eigenschaften?

    Je nachdem bietet sich dann z.b. auch an eigene Objekt zu definieren

    Struppi.

    1. Hallo Struppi,

      ich möchte nur Texte unter die Bilder schreiben wie z.B. "Die Vorbereitungen sind in vollem Gang" oder "Der Kasten ist fertig". Mehr nicht.

      Die Bilder werden von dem Show-Script durchnummeriert erwartet (bild-01, bild-02 usw.). Das habe ich, als ich das für das erste Projekt mit den Untertiteln gemacht habe, ausgenutzt, um die entsprechenden Texte aus dem Array zu ziehen. Wie gesagt: das klappt.

      Nun kommen aber in Zukunft weitere Projekte hinzu und das mit der Bildergalerie hat großen Anklang gefunden. Daher muss ich das jetzt irgendwie hinbekommen, die Bilduntertitel mit den richtigen Projekten verknüpfen zu können. Weitere Funktionen brauche ich nicht, den Rest macht schon das Script, das ich verwende. Es geht nur darum, Untertitel und Projekte einander richtig zuzuweisen. Wichtig nur: die Projekte können alle eine unterschiedliche Anzahl von Bildern haben!

      Gruß,

      Stefan

      1. hi,

        Nun kommen aber in Zukunft weitere Projekte hinzu und das mit der Bildergalerie hat großen Anklang gefunden. Daher muss ich das jetzt irgendwie hinbekommen, die Bilduntertitel mit den richtigen Projekten verknüpfen zu können.

        Warum willst du dazu ein mehrdimensionales Array benutzen?

        Warum nutzt du nicht _ein_ Array für jedes "Projekt", und lädst das jeweils passende hinzu?

        Die Beschreibungen zu allen x1000 Bildern zu laden, wenn ich mir nur ein Projekt mit einer handvoll Bilder ansehe, wäre doch widersinnig.

        gruß,
        wahsaga

        --
        /voodoo.css:
        #GeorgeWBush { position:absolute; bottom:-6ft; }
        1. Hallo,

          Die Beschreibungen zu allen x1000 Bildern zu laden, wenn ich mir nur ein Projekt mit einer handvoll Bilder ansehe, wäre doch widersinnig.

          OK, das leuchtet ein.

          Warum willst du dazu ein mehrdimensionales Array benutzen?
          Warum nutzt du nicht _ein_ Array für jedes "Projekt", und lädst das jeweils passende hinzu?

          Aber im JS-Script muss ich doch dann eh
          arrP1 = new Array();
          arrP2 = new Array();
          arrP3 = new Array();
          ...

          arrP1[0] = "";
          arrP1[1] = "p1_text1";
          arrP1[2] = "p1_text2";
          arrP1[3] = "p1_text3";
          ...

          arrP2[0] = "";
          arrP2[1] = "p2_text1";
          arrP2[2] = "p2_text2";
          ...

          schreiben. Da werden doch auch alle Beschreibungen eingelesen.

          Und wie rufe ich dann das richtige Array, z.B. für Projekt5 (Werkzeugkiste), auf?

          Gruß,

          Stefan

          1. hi,

            Aber im JS-Script muss ich doch dann eh
            arrP1 = new Array();
            arrP2 = new Array();
            arrP3 = new Array();
            [...]
            schreiben. Da werden doch auch alle Beschreibungen eingelesen.

            Das muss ja nicht alles in _einem_ Script liegen.

            Und wie rufe ich dann das richtige Array, z.B. für Projekt5 (Werkzeugkiste), auf?

            In dem du nur die zugehörige JS-Datei mit der passenden Datendefinition einbindest.

            gruß,
            wahsaga

            --
            /voodoo.css:
            #GeorgeWBush { position:absolute; bottom:-6ft; }
            1. Hallo,

              Das muss ja nicht alles in _einem_ Script liegen.
              In dem du nur die zugehörige JS-Datei mit der passenden Datendefinition einbindest.

              Dann habe ich u.U. 25 JS-Script-Dateien. Wo ist da der Vorteil?

              Stefan

              1. hi,

                Dann habe ich u.U. 25 JS-Script-Dateien. Wo ist da der Vorteil?

                DaSs ich als User nicht viel mehr Daten laden muss, als benötigt werden.

                Wenn dir die serverseitige Datenhaltung auf diese Weise zu umständlich wird - dann besorge dir eine serverseitige Technik, die dich die Daten komfortabler verwalten lässt.

                gruß,
                wahsaga

                --
                /voodoo.css:
                #GeorgeWBush { position:absolute; bottom:-6ft; }
                1. Hallo,

                  Danke.

                  Stefan

  2. Hallo Pampel.

    Das Script, das ich dazu verwende, schreibt aber keine Texte unter das Bild, so wie ich das gerne hätte.

    Was spricht dann gegen Folgendes?

    img::after {  
      content:attr(alt);  
      display:block;  
    }
    

    IE-User sehen natürlich davon zwar nichts, aber die können sich sowieso den Inhalt des alt-Attributes per Tooltip anzeigen lassen.

    Einen schönen Mittwoch noch.

    Gruß, Ashura

    --
    sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
    mathbr:del.icio.us/ mathbr:w00t/
    1. Hallo Ashura,

      img::after {

      content:attr(alt);
        display:block;
      }

        
      Wo kommt das denn her? Habe ich so noch nie gesehen.  
        
      Gruß,  
        
      Stefan  
      
      
      1. Hallo Pampel.

        Hallo Ashura,

        img::[link:http://www.w3.org/TR/CSS21/generate.html#x5@title=after] {

        [link:http://www.w3.org/TR/CSS21/generate.html#propdef-content@title=content]:attr(alt);
          display:block;
        }

        
        >   
        > Wo kommt das denn her? Habe ich so noch nie gesehen.  
          
        Das ist CSS. Es bewirkt, dass hinter jedes img-Element ein Pseudoelement eingefügt wird, dessen Inhalt aus dem Wert des alt-Attributes des jeweiligen img-Elementes generiert und dieser generierte Inhalt per display:block so formatiert wird, dass er unter dem Bild erscheint.  
          
        Ich habe die relevanten Teile nun einmal verlinkt.  
        (Lasse dich nicht von den doppelten Punkten bei der after-Pseudoklasse verwirren. Obiges ist lediglich die neuere [CSS-Level-3-Notation](http://www.w3.org/TR/2003/WD-css3-content-20030514/#syntax).)  
          
          
        Einen schönen Mittwoch noch.  
          
        Gruß, Ashura  
        
        -- 
        sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|  
        [<mathbr:del.icio.us/>](http://del.icio.us/mathbr) [<mathbr:w00t/>](http://w00t.noctus.net)
        
        1. Hallo Ashura,

          das ist mir neu gewesen. Ich bin vor der flächendeckenden Nutzung von CSS aus dem HTML-Geschäft raus und jetzt nur noch sporadisch damit beschäftigt.

          Vielen Dank für die Info.

          Gruß,

          Stefan