Pampel: Diashow für mehrere Projekte

Hallo zusammen,

auf einer Homepage sollen mehrere Bildergalerien präsentiert werden. Dafür habe ich ein schönes Script gefunden, was auch prima läuft.

In den einzelnen Projekten sollen die Bilder in einer Galerie mit kleinen Vorschaubildern präsentiert werden. Klickt man auf eines der Vorschaubilder, so öffnet sich eine neue Seite mit dem großen Bild. Man kann dann in diesem Script einstellen, dass die Bilder nach 5, 10, 20 Sekunden oder aber erst bei Klick wechseln.

Für das erste Projekt habe ich es mit einem Array auch schon geschafft, unter die großen Bilder dynamisch auch die passenden Bildunterschriften zu platzieren.

arrTexte = new Array("","Text1","Text2","Text3",...)

Da ich dies jetzt aber für mehrere Projekte machen will, aber nur ein JS-Script benutzen möchte, dachte ich mir, ich erweitere das Array wie folgt:

arrTexte = new Array _
("","", _
"projekt1","Text1", _
"projekt1","Text2",
...,... _
"projekt2","Text1", _
"projekt2","Text2", _
...,...)

Nun habe ich aber gemerkt, dass das kein zweidimensionales Array ist. Ich wollte mit arrTexte[>1<][1], also mit der ersten '1', ermitteln, für welches Projekt die Texte geschrieben werden sollen. Den notwendigen Parameter gebe ich dem Aufruf der Funktion mit.

Wie baue ich ein solches Array am besten auf?

Danke für Hinweise.

Gruß,

Stefan

  1. Hell-O!

    Wie baue ich ein solches Array am besten auf?

    Als sogenanntes Assoziatives Array vielleicht.

    Siechfred

    1. Hallo,

      Als sogenanntes Assoziatives Array vielleicht.

      vielen Dank für den Hinweis. An der Stelle hatte ich auch schon nachgesehen. Da aber die Projekte eine unterschiedliche Anzahl von Bildern haben, denke ich, dass ich damit leider nicht weiterkomme.

      Gruß,

      Stefan

      1. Hell-O!

        Da aber die Projekte eine unterschiedliche Anzahl von Bildern haben, denke ich, dass ich damit leider nicht weiterkomme.

        Eventuell könnte so eine Datenstruktur funktionieren:

        var Texte = new Object();  
        Texte['Projekt1'] = new Array('Bild 1', 'Bild 2');  
        Texte['Projekt2'] = new Array('Grafik 1', 'Grafik 2', 'Grafik 3');
        

        Das könnte man dann so abfragen:

        function project_exists(p) {  
          if(typeof Texte[p] != 'undefined')  
            alert(p+' existiert');  
          else  
            alert(p+' existiert nicht');  
        }
        

        Zugriff auf die Texte erhältst du über Texte['Projektname'][index]. Vielleicht wäre das eine Überlegung wert.

        Siechfred

  2. Hallo zusammen,

    Nun habe ich aber gemerkt, dass das kein zweidimensionales Array ist.

    arrTexte = new Array (
      new Array ( "Projekt1 Text1", "Projekt1 Text2" )
     ,new Array ( "Projekt2 Text1", "Projekt2 Text2" )
    );

    // Projekt1, Text2:
    alert( arrTexte[0][1] );

    Kalle

    1. Hallo Kalle

      arrTexte = new Array (
        new Array ( "Projekt1 Text1", "Projekt1 Text2" )
      ,new Array ( "Projekt2 Text1", "Projekt2 Text2" )
      );

      // Projekt1, Text2:
      alert( arrTexte[0][1] );

      OK, das habe ich soweit dann verstanden, vielen Dank.

      Aber die Projekte haben eine unterschiedliche Anzahl von Bildern. Wie mache ich das dann?

      Gruß,

      Stefan

      1. Hallo Stefan

        Aber die Projekte haben eine unterschiedliche Anzahl von Bildern. Wie mache ich das dann?

        arrTexte = new Array (
          new Array ( "Projekt1 Text1", "Projekt1 Text2" )
         ,new Array ( "Projekt2 Text1", "Projekt2 Text2", "Projekt2 Text3" )
        );

        // Projekt2:
        for ( i=0; i<arrTexte[1].length; i++) {
          alert( arrTexte[0][i] );
        }

        LG Kalle

        1. Sorry, es muss natürlich heissen

          // Projekt2:
          for ( i=0; i<arrTexte[1].length; i++) {
            alert( arrTexte[1][i] );
          //                ^
          }

          LG Kalle