PHP Countdown
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
ablauf
aktion
browser
code
countdown
datei
datenbank
dokument
flamme
http
hypertext
index
kleinen countdown
live beispiel
schaffen
sekunde
springen
testzweck
url
varianten nutzen
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
PHP wird am Server ausgeführt, deshalb würde deine Seite besten Falls 30 Sekunden lang beim Laden hängen... aber von Countdown ist das weit entfernt.
Beitrag zuletzt geändert: 25.9.2012 22:25:53 von hackyourlife -
Nein. PHP ist ein Hypertext-Präprozessor. PHP verändert ein HTML Dokument bevor es zum Browser gesendet wird. Sobald der Browser das fertige HTML Dokument in die Finger bekommt, hat PHP keine Kontrolle darüber und entsprechend kann man da auch nicht dynamisch irgendwelche Zahlen runterzählen.
Von daher wirst du um JavaScript kaum herumkommen. Man könnte es auch mit Java, Flash oder Silverlight machen, aber das ist viel zu viel Aufwand. -
Danke für eure Antwort.
Ich habe bereits im Internet gesucht und ein Java-Skript für einen kleinen Countdown gefunden:
<script type="text/javascript">
var secs=30; //Sekunden einstellen
function docount(remaining){
if(remaining==0){ document.location.href=""; }
else{
document.getElementById('countdown').firstChild.nodeValue=remaining+" Sekunden ";
remain=remaining-1;
setTimeout("docount(remain);",1000);
}
}
setTimeout("docount(secs);",100);
</script>
Kann ich es schaffen, dass nach Ablauf der Zeit eine "php-Aktion" ausgeführt wird (Änderung bei einer Datenbank)? -
flamme schrieb:
Ja.
Kann ich es schaffen, dass nach Ablauf der Zeit eine "php-Aktion" ausgeführt wird (Änderung bei einer Datenbank)?
Dein Script würde allerdings die eigentliche Seite verlassen - und zur PHP-Seite springen, und bei deaktiviertem JavaScript würde gar nix passieren.
Hier mal 3 Varianten basierend auf Html, mit und ohne JavaScript. Alle 3 Varianten nutzen ein unsichtbares iframe, in dem eine Dummy-Datei geladen wird. Die Dummy-Datei sorgt dafür, dass das PHP-Script auch bei deaktiviertem JavaScript aufgerufen wird. Das iframe sorgt dafür, dass die eigentliche Seite nicht verlassen wird. Ajax wird hierbei nicht verwendet, und der Countdown ist zu Testzwecken auf 3 Sekunden gestellt.
Live-Beispiele jeweils unter den Scripten.
Das PHP-Script wäre in jedem Fall das selbe, und heißt Beispielhaft "ausfuehren.php".
> Live-Beispiel PHP-Script <Hallo, ich bin die PHP-Datei :) <? PHP // Quelltext ?>
Variante 1: JavaScript-Counter wird angezeigt
index.html:
dummy.html<html><head><title>Counter: Variante 1</title> <style type="text/css"> #framer {position:absolute;top:0;left:0; width:0px;height:0px;visibility:hidden;} </style> </head> <body> <script type="text/javascript"> var t= 3, //Sekunden einstellen url= "ausfuehren.php", //Url der PHP-Datei s=" Sekunde";function los(){window.setTimeout("docount()",1000)} function go(to){ document.getElementById('countdown').firstChild.nodeValue=t+to} function docount(){t--;if(t==1){go(s)}else{go(s+"n")} if(t==0){framer.location.replace(url);return false}los()}los() </script> <div id="countdown">3 Sekunden</div> <iframe id="framer" name="framer" src="dummy.html"></iframe> </body></html>
> Live-Beispiel Variante 1 <<noscript> <meta http-equiv="refresh" content="3; URL=ausfuehren.php"></noscript>
Variante 2: JavaScript-Counter wird nicht angezeigt
index2.html:
dummy.html<html><head><title>Counter: Variante 2</title> <style type="text/css"> #framer {position:absolute;top:0;left:0; width:0px;height:0px;visibility:hidden;} </style> </head> <body> <script type="text/javascript"> var t= 3, //Sekunden einstellen url= "ausfuehren.php"; //Url der PHP-Datei function los(){window.setTimeout("docount()",1000)} function docount(){t--;if(t==0){framer.location.replace(url); return false}los()}los() </script> <iframe id="framer" name="framer" src="dummy.html"></iframe> </body></html>
> Live-Beispiel Variante 2 <<noscript> <meta http-equiv="refresh" content="3; URL=ausfuehren.php"></noscript>
Variante 3: Kein JavaScript-Counter, kein JavaScript
index3.html:
dummy3.html<html><head><title>Counter: Variante 3</title> <style type="text/css"> #framer {position:absolute;top:0;left:0; width:0px;height:0px;visibility:hidden;} </style> </head> <body> <iframe id="framer" src="dummy3.html"></iframe> </body></html>
> Live-Beispiel Variante 3 <<meta http-equiv="refresh" content="3; URL=ausfuehren.php">
Ajax ist sicherlich die elegantere Methode, allerdings müsste auch dann an ein <noscript><iframe> und eine Dummy-Datei mit <noscript> Bereich gedacht werden, falls User mit deaktiviertem Javascript die Seiten ansurfen.
Beitrag zuletzt geändert: 26.9.2012 5:43:04 von menschle -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage