php.de

Zurück   php.de > Webentwicklung > HTML, Usability und Barrierefreiheit

HTML, Usability und Barrierefreiheit Themen rund um Textauszeichnung, Formatierung, Barrierefreiheit und Usability.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 28.07.2004, 16:29  
Gast
 
Beiträge: n/a
Standard [Erledigt] Leidiges Thema Countdown

Hallo!

Ich weiß, wahrscheinlich nerv ich, wenn schon wieder einer nach einem Countdown fragt, aber nach 2 Tage googeln will ich nicht mehr.

Vorweg: Es geht um ein Browsergame! *duck*

Ich bräuchte nun einen Countdown für das bauen von Gebäuden. In meiner datenbank (mysql) trage ich die Zeit in Forum eines Timestamps ein, wann das gebäude in Auftrag gegeben wurde.
Aufgebaut ist die Datenbank in etwa so:

Stadtid / Hauptgebäude / Kaserne / ... / Zeit

Wenn ich nun auf "ausbauen" klicke, wird der Wert des Gebäudes von -1 auf 1 geändert und die aktuelle Zeit eingetragen.

Nun bräuchte ich einen einen JS Countdown, der mir die Zeit bis zum fertigstellen des Gebäudes ausgibt, beim verlassen des Fenster nicht neu startet, (also immer die Startzeit aus der datenbank liest) und wenn er abgelaufen ist, ein Skript ausführt.

Ich habe leider von JS absolut keine Ahnung, nur von PHP, darum hoffe ich, mir kann jemand helfen?

Und bitte nicht einen Link auf irgendein "ähnliches" Tutorial, ich hab schon 20 gelesen und keins konnte mir helfen!

Danke!

Tom
  Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 28.07.2004, 17:07  
Erfahrener Benutzer
 
Registriert seit: 04.07.2003
Beiträge: 359
PHP-Kenntnisse:
Fortgeschritten
Sirke befindet sich auf einem aufstrebenden Ast
Standard

ich hab da schon was fertig:

Code:
function Timer( Zeit )
{
	if ( Zeit > 0 )
	{
		var Tage     = Math.floor( Zeit / 86400 );
		var Stunden  = Math.floor( ( Zeit - ( Tage * 86400 ) ) / 3600 );
		var Minuten  = Math.floor( ( Zeit - ( Tage * 86400 + Stunden * 3600 ) ) / 60 );
		var Sekunden = Zeit - ( Tage * 86400 + Stunden * 3600 + Minuten * 60 );

		if ( Tage == 1 ) Tage = Tage + " Tag ";
		else Tage = Tage + " Tage, ";

		if ( Stunden == 1 ) Stunden = Stunden + " Stunde ";
		else Stunden = Stunden + " Stunden, ";

		if ( Minuten == 1 ) Minuten = Minuten + " Minute ";
		else Minuten = Minuten + " Minuten und ";

		if ( Sekunden == 1 ) Sekunden = Sekunden + " Sekunde";
		else Sekunden = Sekunden + " Sekunden";

		var Text = Tage + Stunden + Minuten + Sekunden;
		document.getElementById('Timer').innerHTML = Text;

		Zeit = Zeit - 1;
		window.setTimeout('Timer( "' + Zeit + '" )',1000);
	}
	else
	{
		document.getElementById('Timer').innerHTML = 'Das Gebäude ist fertig.';
	}
}
das ganze in onload zusammen mit der zeit aufrufen:
Code:
<body onLoad="Timer('10000000');"
und im body bereich muss dann noch das stehen:
Code:
<div ID="Timer">...loading...</div>
#

dort wo das loading steht, steht dann z.B. "0 Tage, 0Stunden, 0 Minuten und 30 Sekunden"

mfg Sirke
Sirke ist offline   Mit Zitat antworten
Alt 29.07.2004, 18:31  
Gast
 
Beiträge: n/a
Standard

Erstmal vielen Dank für die Mühe!

Das Skript verstehe ich nun zumindest schon ein wenig!

Ich sehe dass doch richtig, dass ich in den onload Teil nur die Zeit eintragen muss, wie lange der Countdouwn laufen soll?
Kann ich da auch eine PHP Variable eintragen?

Und dann noch eine Frage zu diesem Teil:

else
{
document.getElementById('Timer').innerHTML = 'Das Geb&auml;ude ist fertig.';
}

Kann ich da auch ein PHP Skript aufrufen? Am besten in einer neuen Seite und die aktuelle dann aktualisieren?

Sorry für soviele Fragen, am besten wär sicherlich, mir JS beizubringen, aber es ist der einzige Teil, für den ich JavaSkript brauche!

Danke schonmal für weitere antworten!
  Mit Zitat antworten
Alt 29.07.2004, 18:46  
Erfahrener Benutzer
 
Registriert seit: 08.06.2004
Beiträge: 865
RudiS
Standard

Die Zeit kannst du so eintragen:
Code:
<body onLoad="Timer('<?php echo $deine_variable_mit_der_zeit_in_sekunden; ?>');">
Die PHP Seite kannst du damit aufrufen:
Code:
window.location.href = "dateipfad";
(siehe auch: JavaScript / Objekt-Referenz / location)
Das musst du nach dem "Das Gebäude ist fertig." einbauen.
mfg RudiS
__________________
Kunst kommt von Können und nicht von wollen, denn sonst würde es ja Wunst heißen.
RudiS ist offline   Mit Zitat antworten
Alt 29.07.2004, 19:12  
Gast
 
Beiträge: n/a
Standard

Nochmal vielen Dank, ich hab das nun auch hinbekommen.

Das einzige was ich ändern musste, dass in der Datenbank nicht die Zeit gespeichert wird, als der Auftrag gegeben wurde, sondern die "Fertigstellzeit", somit stimmt der Countdouwn immer!

Eine allerletzte Frage:
Kann ich den ganzen Code, also den oberen Teil in eine extra Datei auslagern, damit der nicht direkt in der PHP Seite steht?

Hab das schonmal gesehen, die endung lautet wohl js? Muss in der Datei noch was anderes stehen oder rein nur der Code?
Und wie mache ich meiner Seite dann bekannt, dass der Code benötogt wird?
Denke, dass es so ähnlich wie src="countdown.js" lauten müsste, bin mir aber nicht hundertprozentig sicher!

Tom
  Mit Zitat antworten
Alt 29.07.2004, 19:44  
Erfahrener Benutzer
 
Registriert seit: 04.07.2003
Beiträge: 359
PHP-Kenntnisse:
Fortgeschritten
Sirke befindet sich auf einem aufstrebenden Ast
Standard

Code:
<SCRIPT language="JavaScript" src="Der_Dateiname.js"></SCRIPT>
Der Teil steht im <head> Berich.
Sirke ist offline   Mit Zitat antworten
Alt 30.07.2004, 00:41  
Gast
 
Beiträge: n/a
Standard

Es hat funktioniert!

Vielen Dank für eure hilfe!
  Mit Zitat antworten
Alt 30.07.2004, 10:02  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von Nummer
Es hat funktioniert!!
Dachte ich zumindest! Auf meinem heimrechner hat es auch wunderbar funktioniert. als ich es dann hochgeladen habe, nicht mehr.

Ich vermute sehr stark, dass bei window.location.href die Session zerstört wird.

Hab dann versucht
window.location.href = "...php?<?php echo $sessionid; ?>";
aber da ging dann gleich gar nichts mehr!
  Mit Zitat antworten
Alt 30.07.2004, 11:06  
Erfahrener Benutzer
 
Registriert seit: 08.06.2004
Beiträge: 865
RudiS
Standard

So müsste es dann gehen:
Code:
window.location.href = "...php?<?php echo session_name().'='.session_id(); ?>";
(siehe auch session_name())
mfg RudiS
__________________
Kunst kommt von Können und nicht von wollen, denn sonst würde es ja Wunst heißen.
RudiS ist offline   Mit Zitat antworten
Alt 31.07.2004, 04:10  
Erfahrener Benutzer
 
Registriert seit: 08.01.2004
Beiträge: 166
yoshy
yoshy eine Nachricht über ICQ schicken
Standard

also ich hab das auch probiert, doch wenn ich nun meine seite aufrufe, läd das script ganz kurz, doch dann kommt ne neue seite, wo der counter runterzählt, ich will aber, dass einfach nur an der stelle der counter zählt wo ich ihn auch haben will, in der alten seite!

mit div gehts bei mir irgendwie net oder mach ich was falsch??

danke schonmal

<edit>

Hab das Prob gelöst, im script war ein tippfehler ...

es müsste eigentlich heißen :

Code:
<body onLoad="Timer('1000000');">
yoshy ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] Thema anpinnen und Thema als gelesen markieren? litterauspirna PHP Tipps 2008 27 04.08.2008 11:19
Neues Thema und Eröffnungspost richtig zueinander in 2 Tabelen eintragen? litterauspirna PHP Tipps 2008 8 25.06.2008 13:37
Countdown der.... xenus HTML, Usability und Barrierefreiheit 0 02.10.2006 10:07
Leidiges Thema Transparenz HStev PHP Tipps 2007 1 11.11.2005 14:52
php in ein JavaScript Countdown einbinden! Boennchen PHP Tipps 2005 11 26.04.2005 13:41
Wie kann ich den Countdown von der Stautsleiste in den Body HTML, Usability und Barrierefreiheit 17 25.04.2005 22:04
Dringend! PHP, JScript und SQL - countdown PHP-Fortgeschrittene 2 01.03.2005 23:50
[Erledigt] JavaScript + PHP (SQL) Countdown HTML, Usability und Barrierefreiheit 5 23.12.2004 14:01
problem (countdown) HTML, Usability und Barrierefreiheit 8 07.11.2004 23:08
Der 'Countdown' und das Tutorial... HTML, Usability und Barrierefreiheit 2 12.09.2004 22:43
[Erledigt] Countdown problem! HTML, Usability und Barrierefreiheit 3 28.07.2004 11:59
Javascript countdown mal anders - erledigt Ohrwurm83 HTML, Usability und Barrierefreiheit 4 02.07.2004 23:35
javascript countdown in while scheife Ohrwurm83 PHP Tipps 2004 1 02.07.2004 16:50
[Erledigt] Countdown HTML, Usability und Barrierefreiheit 2 27.06.2004 02:32
Automatisierung durch countdown Ohrwurm83 PHP Tipps 2004 2 16.06.2004 22:55

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php dauer countdown tage, http://www.php.de/html-usability-und-barrierefreiheit/5880-erledigt-leidiges-thema-countdown.html, countdown php abgelaufen, zeit -= tage*86400; var stunden = math.floor( zeit / 3600);, countdown für body bereich

Alle Zeitangaben in WEZ +2. Es ist jetzt 06:51 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.