Antworten auf deine Fragen:
Neues Thema erstellen

Ende von Countdown eine Aktion

slowprojects

Noch nicht viel geschrieben

Hallo Leute.

Ich habe eine Idee und weiß nicht, wie ich das umsetzen kann :)

Also zur Erklärung:

Ich hab jetzt z.B.: eine Zahl 10 gespeichert in der Datenbank. Ich will jetzt einen Countdown starten. Der rennt sagen wir mal 30 Minuten. Nach 30 Minuten, also wenn der Countdown auf 0 ist, soll sich die Zahl auf 9 verringern und der Countdown wieder von vorne, also von 30 Minuten, starten.

Das Script soll immer laufen, das heißt, man muss nicht auf der Seite sein, damit der Countdown läuft. Im Prinzip sollte der dann auf der Datenbank laufen oder so ^^

wie genau das geht keine Ahnung. Ich weiß nur ich brauch einen countdown für Minuten und Sekunden und danach die Anweisung.

Anweisung weiß ich und kenn ich ^^ countdown (Wäre nett wenn zufällig jemand ein script hätte xD) aber ich könnts auch selber schreiben oder auftreiben aber wie mach ich das, dass die Anweisung wirklich am Ende des CD ausgeführt wird und das immer läuft?

Danke für eure Vorschläge und Tipps :D

lg
 

slowprojects

Noch nicht viel geschrieben

AW: Ende von Countdown eine Aktion

so ich hab jetzt mal den Countdown fertig!

<script type="text/javascript">
window.onload=secondCount;

// Sekunden mit PHP initialisiert
var lngSekunden = <?php echo("2"); ?>;

function secondCount(){
// Stunden berechnen
intStunden = Math.floor(lngSekunden/(60*60));
// Stunden formatieren
intStunden = (intStunden < 10) ? "0"+intStunden : intStunden;
// Restsekunden berechnen
lngHelpSekunden = lngSekunden - intStunden*60*60;

// Minuten berechnen, formatieren und Restsekunden berechnen
intMinuten = Math.floor(lngHelpSekunden/60);
intMinuten = (intMinuten < 10) ? "0"+intMinuten : intMinuten;
intSekunden = lngHelpSekunden - intMinuten*60;

// Sekunden formatieren
intSekunden = (intSekunden < 10) ? "0"+intSekunden : intSekunden;

// Ausgabestring generieren
strZeit = "Restzeit: " + intMinuten + ":" + intSekunden;
strAusgabe = "Das ist das Ende!";

// Ausgabestring in DIV mit ID="countdownID" schreiben
document.getElementById("countdownID").innerHTML = strZeit;

// Sekunden dekrementieren
lngSekunden--;
if(lngSekunden >= 0)
// Countdown-Funktion erneut aufrufen
window.setTimeout("secondCount()", 1000);
else
document.getElementById("countdownID").innerHTML = strAusgabe;
}
</script>
<div id="countdownID"></div>
jetzt soll aber, wenn lngSekunden auf 0 ist, in der Datenbank die Zahl um 1 reduzieren. Irgendwie haut das bei mir nicht hin

Jemand ideen?

danke lg

EDIT /// so jetzt zeigt er mir nach Ablauf der 2 Sekunden "Das ist das Ende!" an ... aber wie starte ich den CD jetzt neu und reduzier die zahl in der DB um 1? ^^
 
Zuletzt bearbeitet:

Unertl

Nicht mehr ganz neu hier

AW: Ende von Countdown eine Aktion

Hallo,

Dein Skript ist in JavaScript geschrieben. JavaScript läuft im Browser, Deine Datenbank ist aber auf dem Server und Dein Countdown soll auch dann laufen, wenn niemand auf der Seite ist. Daher wirst Du mit JavaScript nicht weit kommen.

Was Du brauchst ist ein Cron-Job auf dem Server. Damit kann man zu bestimmten Zeiten ein Skript starten. Zum Beispiel alle 30 Minuten ein php-Skript, dass in der Datenbank einen Eintrag herunterzählt.

Sollte Dein Server keinen Cron-Job haben, könntest Du Dir mit einem Trick behelfen. Du speicherst in der Datenbank den aktuellen Wert und die Uhrzeit der letzten Aktualisierung ab. Bei einem erneuten Aufruf der Seite, errechnest Du die Zeit die vergangen ist und daraus den aktuellen Wert des Countdowns und aktualisierst die Werte in der Datenbank.
 

slowprojects

Noch nicht viel geschrieben

AW: Ende von Countdown eine Aktion

Ahhhh ja genau. Cronjob ist das Zauberwort ^^ :)

Danke dir. Ich werd mich heute Abend mal ran setzen und wenn ich es nicht zum laufen bringe, hoff ich, dass ich euch wieder damit nerven kann :D

thx lg :)
 

sokie

Mod | Web

AW: Ende von Countdown eine Aktion

eigentlich brauchst du dafür keinen cronjob. Dein Script was immer läuft ist die Zeit selbst.
Wenn du nun neben der Zahl(10) in der Datenbank noch die Zeit festhältst, kannst du per (php)script (funktion time()) immer vergleichen wie gross der Unterschied zwischen der gegenwärtigen und der eingangs eingetragenen Zeit ist, durch die 30min (1800) teilen und die entsprechende Zahl ausgeben.
 
Zuletzt bearbeitet:

lachender_engel

Aktives Mitglied

AW: Ende von Countdown eine Aktion

Wenn Deine Lösung ohne Browser laufen soll, musst Du das abhängig vom Betriebssystem des Servers lösen - bei WIndows z.B. in .NET, unter Linux z.B. als .sh-Datei.
Was Du lternativ machen kannst ist ein PHP-Skript zu programmieren und mit dem Ansatz von sokie z.B. diese php-Seite jede Minute mit wget anstoßen. Dabei vergleichst Du die aktuelle Zeit mit der, wann der Zähler in der DB das letzte mal geändert wurde.
 

ovbb

es gibt für alles eine weg

AW: Ende von Countdown eine Aktion

wie slowprojects schon erwähnt hat: cronjobs wenn man damit wirklich was anstellen muss.
wie sokie erwähnt hat kann man das auch jeweils nachrechnen.

welchen lösungsansatz du verwendest hängt davon ab was du machen willst.

aber frag mich nur wieso man alle 30min einen wert in einer DB dekrementieren will?! :)
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Keine Mitglieder online.

Statistik des Forums

Themen
118.615
Beiträge
1.538.352
Mitglieder
67.526
Neuestes Mitglied
Winfriedtesmer
Oben