Henning: Zufälliger Bildwechsel bei Seitenaufbau

Hallöchen,

ich habe vor, beim Aufbau einer Webseite Bilder zufällig laden zu lassen (sodass jedesmal wenn man die Seite betritt ein anderes Bild dargestellt wird), leider aber keine Idee zur Umsetzung. Nehme an das geht mit Javascript, oder braucht man tatsächlich php? Finde nirgendwo ein passendes Script. Kann mir jemand aushelfen?

Besten Dank!

Henning

  1. Hallo Henning,

    ich habe vor, beim Aufbau einer Webseite Bilder zufällig laden zu lassen (sodass jedesmal wenn man die Seite betritt ein anderes Bild dargestellt wird), leider aber keine Idee zur Umsetzung. Nehme an das geht mit Javascript, oder braucht man tatsächlich php? Finde nirgendwo ein passendes Script.

    Wenn es dir reicht, dass js-lose User immer das gleiche Bild bekommen, reicht auch js ansonsten brauchst du was serverseitiges. Eine JS-Lösung findest du im Archiv (bitte den ganzen Thread lesen).

    Grüße aus Nürnberg
    Tobias

  2. Hallo Henning

    ich habe vor, beim Aufbau einer Webseite Bilder zufällig laden zu lassen (sodass jedesmal wenn man die Seite betritt ein anderes Bild dargestellt wird), leider aber keine Idee zur Umsetzung. Nehme an das geht mit Javascript, oder braucht man tatsächlich php? Finde nirgendwo ein passendes Script. Kann mir jemand aushelfen?

    Natürlich ist das mit Javascript möglich. Da aber Javascript im Browser (also nach dem Senden der Seite) ausgeführt wird, macht das nicht so viel Sinn!
    Viel einfacher ist es doch, wenn auf dem Server zufällig ein Bild ausgesucht wird. Dazu kannst Du z.B. php verwenden.

    Z.B. speicherst Du in einem Array namens $fotos alle Bild-Dateinamen. Dann erzeugst Du eine Zufallszahl zwischen 0 und der Anzahl Elemente in $fotos.

    Mit folgender Zeile wird dann dieses Bild ausgegeben:

    <img src="<?= $fotos[$zufallszahl] ?>" >

    Falls Du noch keine Erfahrung mit php hast, verwende http://www.php.net/manual/de/, und suche nach den Stichworten, welche ich Dir gegeben habe.

    Gruss
    Louis

    1. Hallo Louis,

      Natürlich ist das mit Javascript möglich. Da aber Javascript im Browser (also nach dem Senden der Seite) ausgeführt wird, macht das nicht so viel Sinn!

      warum nicht?

      Dann erzeugst Du eine Zufallszahl zwischen 0 und der Anzahl Elemente in $fotos.

      ... zwischen 0 und der Anzahl der Elemente-1 in $fotos.

      <img src="<?= $fotos[$zufallszahl] ?>" >

      besser:
        <img src="<?php echo $fotos[$zufallszahl]; ?>" alt="...">

      Grüße aus Nürnberg
      Tobias

      1. Hallo Tobias

        Natürlich ist das mit Javascript möglich. Da aber Javascript im Browser (also nach dem Senden der Seite) ausgeführt wird, macht das nicht so viel Sinn!
        warum nicht?

        Es ist ein typisches Beispiel, wo Javascript absolut unangebracht ist.
        Soll ich jetzt das wirklich ausführen?

        Also gut: Javascript ist dazu da, damit man die Möglichkeit hat, ein Programm im Browser des Surfers auszuführen. Das dient z.B. der Interaktion mit dem User, oder um nachträgliche (z.B. zeitgesteuerte oder "verspätete") Aktionen auszuführen, wie z.B. die Ansicht zu verändern etc.

        In diesem Fall soll aber nur anstatt immer das Bild1.jpg mal das Bild2.jpg oder das Bild3.jpg im html-Quelltext stehen.
        Der Client braucht nicht einen riesigen Quelltext voll von Javascript, wenn man stattdessen einfach <img src="Bild1.jpg" ... > oder eben <img src="Bild2.jpg" ... > hätte schicken können!

        Dass nicht alle Javascript aktiviert haben, bedeutet zusätzlich, dass man mit Javascript mit Bedacht umgeht. Die oben erwähnte Interaktion etc. soll ein optionales Feature der Homepage bleiben.

        Dann erzeugst Du eine Zufallszahl zwischen 0 und der Anzahl Elemente in $fotos.
        ... zwischen 0 und der Anzahl der Elemente-1 in $fotos.

        ... zwischen 0 und (Anzahl der Elemente)-1 ...

        <img src="<?= $fotos[$zufallszahl] ?>" >
        besser:
          <img src="<?php echo $fotos[$zufallszahl]; ?>" alt="...">

        Selbstverständlich ist das alt-Attribut unbedingt zu notieren. Da ich das aber für selbstverständlich hielt und einen möglichst minimalistischen und übersichtlichen Code posten wollte habe ich das wieder gelöscht, nachdem ich es getippt habe! (Wozu den Quelltext einer ganzen Seite schicken? Ich wollte didaktisch vorgehen und nur das Wesentliche hervorstreichen, natürlich hat aber deine Korrektur schon auch eine didaktische Berechtigung - einverstanden. )

        Gruss
        Louis

        1. Hallo Louis,

          In diesem Fall soll aber nur anstatt immer das Bild1.jpg mal das Bild2.jpg oder das Bild3.jpg im html-Quelltext stehen.
          Der Client braucht nicht einen riesigen Quelltext voll von Javascript, wenn man stattdessen einfach <img src="Bild1.jpg" ... > oder eben <img src="Bild2.jpg" ... > hätte schicken können!

          Wirklich viel JS-Code ist das nun wirklich nicht - außerdem hat nicht jeder was serverseitiges zur Verfügung.

          Dass nicht alle Javascript aktiviert haben, bedeutet zusätzlich, dass man mit Javascript mit Bedacht umgeht. Die oben erwähnte Interaktion etc. soll ein optionales Feature der Homepage bleiben.

          Ein zufälliges Bild auf einer Seite darzustellen _ist_ imho eine Spielerei bei der es nichts macht wenn der User immer das gleich Bild (das in <noscript>) angezeigt bekommt.

          <img src="<?= $fotos[$zufallszahl] ?>" >
          besser:
            <img src="<?php echo $fotos[$zufallszahl]; ?>" alt="...">
          Selbstverständlich ist das alt-Attribut unbedingt zu notieren.

          Mir ging es weniger um das alt-Attribut, als um den Unterschied '<?=' vs. '<?php echo' - letzteres funktioniert auch bei short_open_tags=off.

          Grüße aus Nürnberg
          Tobias

          1. Hallo Tobias

            Wirklich viel JS-Code ist das nun wirklich nicht

            es ist einfach nicht schoen.

            • außerdem hat nicht jeder was serverseitiges zur Verfügung.

            Hab ich gesagt, man duerfe JS dazu nicht verwenden? Ich hab doch gesagt, dass es mit Javascript auch gehe. Ich brauchte das nicht weiter zu erlaeutern, weil Du das schon gemacht hattest. Meine Aussage war nur, es mache mit einer serverseitigen Loesung mehr Sinn. Wobei ich mit Sinn hier den Sinn und Zweck von html und Javascript verstehe.
            Javascript, welche eine durchaus nuetzliche und praktische Programmiersprache ist, wird einfach zu oft fuer unangebrachte Sachen vergewaltigt. Deshalb hat sie auch teilweise einen schlechten Ruf.

            Natuerlich ist es in diesem Beispiel nicht schlimm und falls man keine serverseitig Technik hat, kann man auch gut auf Javascript _ausweichen_.

            Nach Moeglichkeit sollte man aber lernen, die richtige Technik fuer die jeweilige Aufgabe einzusetzen. (Wuerden das alle machen, waere das Internet wesentlich angenehmer - z.B. wuerden manche e-Banking, e-Voting und Online-Shops nicht nur im IE und Netscape (sic!) funktionieren...)

            Ein zufälliges Bild auf einer Seite darzustellen _ist_ imho eine Spielerei bei der es nichts macht wenn der User immer das gleich Bild (das in <noscript>) angezeigt bekommt.

            Selbstverstaendlich (soweit wir das einschaetzen koennen).
            Trotzdem falls php vorhanden ist, wuerde ich dringend die viel einfachere Loesung mit php vorschlagen, das ist alles, was ich sagen will.

            <img src="<?= $fotos[$zufallszahl] ?>" >
            besser:
              <img src="<?php echo $fotos[$zufallszahl]; ?>" alt="...">
            Selbstverständlich ist das alt-Attribut unbedingt zu notieren.
            Mir ging es weniger um das alt-Attribut, als um den Unterschied '<?=' vs. '<?php echo' - letzteres funktioniert auch bei short_open_tags=off.

            Meinetwegen.
            Auch wenn die Wahrscheinlichkeit dessen nahezu Null ist...

            Gruss
            Louis