Ankündigung

Einklappen
Keine Ankündigung bisher.

Countdown Funktion mehrmals ausführen

Einklappen

Neue Werbung 2019

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

  • Countdown Funktion mehrmals ausführen

    Ich habe im Internet gesucht, und man findet auch relativ viel dazu, allerdings ist das alles auf Beispiele bezogen. Und da bekomme ich keine sinnvolle Verbindung zwischen meinem Beispiel und den von den anderen hin.

    Erstmal der Code:

    Code:
    <script type='text/javascript'>
    var zeit = '<? echo $zeit[3]; ?>';
    var end = new Date(parseInt(zeit)*1000);
    
    function toSt2(n) {
      var s = '';
      if (n < 10) s += '0';
      return (s + n).toString();
    }
    function toSt3(n) {
      var s = '';
      if (n < 10) s += '00';
      else if (n < 100) s += '0';
      return (s + n).toString();
    }
    function countdown() {
      var d = new Date();
      var count = Math.floor(end.getTime() - d.getTime());
      if(count > 0) {
        var miliseconds = toSt3(count%1000); count = Math.floor(count/1000);
        var seconds = toSt2(count%60); count = Math.floor(count/60);
        var minutes = toSt2(count%60); count = Math.floor(count/60);
        var hours = toSt2(count%24); count = Math.floor(count/24);
        var days = count;
        var nutzer = '<? echo $nutzer[3].": "; ?>';
        document.getElementById('c0').innerHTML = nutzer;
        document.getElementById('c1').innerHTML = days + ' TAGE';
        document.getElementById('c2').innerHTML = hours + ':' + minutes + ':' + seconds
        setTimeout('countdown()', 100);
      }
    }
    countdown();
    </script>
    Bei $zeit handelt es sich um die Zielzeit als Timestamp, diese habe ich mit php eingebunden. Wenn ich das jetzt so ausführe klappt es auch super. Allerdings möchte ich jetzt dass untereinander der Countdown für mehrere Nutzer abgebildet wird. Allerdings "überschreibt" sich die Funktion so ja immer wieder, und es wird nur der letzte ausgeführt.

    Wenn ich jetzt also nochmals

    var zeit = '<? echo $zeit[4]; ?>';
    var end = new Date(parseInt(zeit)*1000);
    countdown()

    von einem anderem Nutzer ausführe, wird nur noch er angezeigt. Wie kann ich das Problem jetzt lösen? Ich habe was mit einer Art ID gelesen, allerdings weiß ich nicht wie ich die da mit einbauen soll.

    Schon mal vielen dank


  • #2
    z.B. in dem du einen Parameter zulässt den du immer an die Variablen dranhängst ( 1, 2, 3 in deinem Beispiel ).
    "Dummheit redet viel..Klugheit denkt und schweigt.." [Amgervinus]

    Kommentar


    • #3
      Sorry ich bin blutiger Anfänger^^ Wie soll ich die Parameter denn an die Variablen hängen? Und ich muss den Parameter ja auch als function(Parameter) bestimmen oder nicht?

      Kommentar


      • #4
        Du musst deine Funktion "countdown()" mit Parametern versehen!
        Deine derzeitige Lösung kann halt nur immer für maximal eine Person genutzt werden.

        Code:
        function countdown(nutzer, elements, end) {
          var d = new Date();
          var count = Math.floor(end.getTime() - d.getTime());
          if(count > 0) {
            var miliseconds = toSt3(count%1000); count = Math.floor(count/1000);
            var seconds = toSt2(count%60); count = Math.floor(count/60);
            var minutes = toSt2(count%60); count = Math.floor(count/60);
            var hours = toSt2(count%24); count = Math.floor(count/24);
            var days = count;
            document.getElementById(element[0]).innerHTML = nutzer;
            document.getElementById(element[1]).innerHTML = days + ' TAGE';
            document.getElementById(element[2]).innerHTML = hours + ':' + minutes + ':' + seconds
            setTimeout('countdown(nutzer, elements, end)', 100);
          }
        }
        So in der Art und dann Pro Nutzer die Countdown Funktion aufrufen:

        Code:
        countdown("Hans", ['c0', 'c1', 'c2'], endtimenutzerhans);
        countdown("Wilhelm", ['c3', 'c4', 'c5'], endtimenutzerwilhelm);
        countdown("Franz", ['c6', 'c7', 'c8'], endtimenutzerfranz);
        Dies ist nicht der fertige Code! Will dir nur den Ansatz zeigen, wie Du in etwa mit deinen Funktionen vorgehen musst.

        Kommentar

        Lädt...
        X