Hallo, danke erstmal für die Hilfe. aber wie es so oft ist habe ich nun ein neues Problem.
Wenn ich es so mache (testseite)
funktioniert es auch.
Doch wenn ich es versuche in meiner Seite einzubauen dann geht es nun nur wenn ich einen "ausbauen" link drücke sonst wird keine Zeit angezeigt.
Hier nochmal mein .php in der alles abläuft
diese .php wird in der index per if get includet und ich habe auch schon versucht das JS in headbereich der index,php zu legen allerdings zeigt er dann statt eine Zeit "NaN:NaN:NaN" denke mal weil die Variable da ja noch nicht gefüllt ist.
Also alles zusammen gesehen muss ich denke ich nur noch an der richtigen Stelle das JS haben oder? Verliere leider abundzu noch den überblick in meinen Code wenn es zuviel wird.
EDIT: Habe den fehler nun gefunden wenn nur eine Stufe gerade ausgebaut wird und die andere nicht dann ist natürlich auch nur eine Variable gefüllt und deswegen zeigt er nix an.
Wenn ich es so mache (testseite)
PHP:
<?php
$zeit1 = 74201;
$zeit2 = 65;
$zeit3 = 3620;
$zeit4 = 178;
?>
<script type="text/javascript">
// Timerobjekt mit PHP initialisiert
var objTimer = {
'countdownID_01': {
lngSekunden: <?php echo $zeit1; ?>
},
'countdownID_02': {
lngSekunden: <?php echo $zeit2; ?>
},
'countdownID_03': {
lngSekunden: <?php echo $zeit3; ?>
},
'countdownID_04': {
lngSekunden: <?php echo $zeit4; ?>
}
};
function secondCount(id){
var lngSekunden = objTimer[id].lngSekunden,
intStunden, lngHelpSekunden, intMinuten, intSekunden, strZeit;
// 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 = intStunden + ":" + intMinuten + ":" + intSekunden;
// Ausgabestring in DIV mit der übergebenen ID schreiben
document.getElementById(id).innerHTML = strZeit;
// Sekunden dekrementieren
objTimer[id].lngSekunden = --lngSekunden;
// Falls der Countdown noch nicht zurückgezählt ist
if(lngSekunden >= 0){
// Countdown-Funktion erneut aufrufen
window.setTimeout(function(){
secondCount(id)
}, 1000);
}
}
window.onload = function(){
secondCount('countdownID_01');
secondCount('countdownID_02');
secondCount('countdownID_03');
secondCount('countdownID_04');
}
</script>
<?php
echo ' <div id="countdownID_01"></div>
<div id="countdownID_02"></div>
<div id="countdownID_03"></div>
<div id="countdownID_04"></div>';
?>
funktioniert es auch.
Doch wenn ich es versuche in meiner Seite einzubauen dann geht es nun nur wenn ich einen "ausbauen" link drücke sonst wird keine Zeit angezeigt.
Hier nochmal mein .php in der alles abläuft
diese .php wird in der index per if get includet und ich habe auch schon versucht das JS in headbereich der index,php zu legen allerdings zeigt er dann statt eine Zeit "NaN:NaN:NaN" denke mal weil die Variable da ja noch nicht gefüllt ist.
Also alles zusammen gesehen muss ich denke ich nur noch an der richtigen Stelle das JS haben oder? Verliere leider abundzu noch den überblick in meinen Code wenn es zuviel wird.
PHP:
<?php
$ee = mysql_query("SELECT userid, aktion, timestamp FROM aktionen WHERE userid = ".$userid."")
or DIE ("MySQL-Fehler 9: " . mysql_error());
while($ww = mysql_fetch_object($ee))
{
if($ww->aktion == "Traingsanlage") {$imbau1 = 1; $imbau1_bauzeitende = $ww->timestamp; $imbau1_fertigin = $ww->timestamp - time();}else{}
if($ww->aktion == "Stadion") {$imbau2 = 1; $imbau2_bauzeitende = $ww->timestamp; $imbau2_fertigin = $ww->timestamp - time();}else{}
}
if(($_GET["ausbauen"]) == 1 or $_GET["ausbauen"] == 2)
{
if($_GET["ausbauen"] == 1 AND (!$imbau1) AND ($tr_an < 15))
{$ausbau = 'Traingsanlage';
// 1 Tag = 86400 Sekunden // 1 Stunde = 3600 Sekunden
if($tr_an == 0) {$ausbauzeit = 10;}
elseif($tr_an == 1) {$ausbauzeit = 10;}
elseif($tr_an == 2) {$ausbauzeit = 10;}
elseif($tr_an == 3) {$ausbauzeit = 10;}
elseif($tr_an == 4) {$ausbauzeit = 10;}
elseif($tr_an == 5) {$ausbauzeit = 10;}
elseif($tr_an == 6) {$ausbauzeit = 10;}
elseif($tr_an == 7) {$ausbauzeit = 10;}
elseif($tr_an == 8) {$ausbauzeit = 10;}
elseif($tr_an == 9) {$ausbauzeit = 10;}
elseif($tr_an == 10) {$ausbauzeit = 10;}
elseif($tr_an == 11) {$ausbauzeit = 10;}
elseif($tr_an == 12) {$ausbauzeit = 10;}
elseif($tr_an == 13) {$ausbauzeit = 10;}
elseif($tr_an == 14) {$ausbauzeit = 10;}
else{}
}
if($_GET["ausbauen"] == 2 AND (!$imbau2) AND ($stadion < 15))
{$ausbau = 'Stadion';
// 1 Tag = 86400 Sekunden // 1 Stunde = 3600 Sekunden
if($stadion == 0) {$ausbauzeit = 10;}
elseif($stadion == 1) {$ausbauzeit = 10;}
elseif($stadion == 2) {$ausbauzeit = 10;}
elseif($stadion == 3) {$ausbauzeit = 10;}
elseif($stadion == 4) {$ausbauzeit = 10;}
elseif($stadion == 5) {$ausbauzeit = 10;}
elseif($stadion == 6) {$ausbauzeit = 10;}
elseif($stadion == 7) {$ausbauzeit = 10;}
elseif($stadion == 8) {$ausbauzeit = 10;}
elseif($stadion == 9) {$ausbauzeit = 10;}
elseif($stadion == 10) {$ausbauzeit = 10;}
elseif($stadion == 11) {$ausbauzeit = 10;}
elseif($stadion == 12) {$ausbauzeit = 10;}
elseif($stadion == 13) {$ausbauzeit = 10;}
elseif($stadion == 14) {$ausbauzeit = 10;}
else{}
}
if($ausbau)
{
mysql_query("INSERT INTO aktionen SET userid = '".$userid."',
aktion = '".$ausbau."',
timestamp = '".(time() + $ausbauzeit)."'
") or DIE ("MySQL-10: " . mysql_error());
if($ausbau == "Traingsanlage") {$imbau1 = 1;$imbau1_fertigin = $ausbauzeit;}else{}
if($ausbau == "Stadion") {$imbau2 = 1;$imbau2_fertigin = $ausbauzeit;}else{}
}
else
{
}
}
else
{
}
echo '
<script type="text/javascript">
// Timerobjekt mit PHP initialisiert
var objTimer = {
"countdownID_01": {
lngSekunden: '.$imbau1_fertigin.'
},
"countdownID_02": {
lngSekunden: '.$imbau2_fertigin.'
}
};
function secondCount(id){
var lngSekunden = objTimer[id].lngSekunden,
intStunden, lngHelpSekunden, intMinuten, intSekunden, strZeit;
// 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 = intStunden + ":" + intMinuten + ":" + intSekunden;
// Ausgabestring in DIV mit der übergebenen ID schreiben
document.getElementById(id).innerHTML = strZeit;
// Sekunden dekrementieren
objTimer[id].lngSekunden = --lngSekunden;
// Falls der Countdown noch nicht zurückgezählt ist
if(lngSekunden >= 0){
// Countdown-Funktion erneut aufrufen
window.setTimeout(function(){
secondCount(id)
}, 1000);
}
}
window.onload = function(){
secondCount("countdownID_01");
secondCount("countdownID_02");
}
</script>
';
echo "Trainingsanlage : ";
if($tr_an){echo $tr_an;}
else{echo "Keine ";}
if($tr_an == 15){echo " höchste Stufe erreicht!<br />";}else{
if(!$imbau1){echo ' <a href="index.php?do=anlagen&ausbauen=1">ausbauen</a><br />';}
else{echo " ausbau auf Stufe ".($tr_an + 1)." fertig in <div id='countdownID_01'></div><br />";}
}
echo "Stadion : ";
if($stadion){echo $stadion;}
else{echo "Keines ";}
if($stadion == 15){echo " höchste Stufe erreicht!<br />";}else{
if(!$imbau2){echo ' <a href="index.php?do=anlagen&ausbauen=2">ausbauen</a><br />';}
else{echo " ausbau auf Stufe ".($stadion + 1)." fertig in <div id='countdownID_02'></div><br />";}
}
?>
EDIT: Habe den fehler nun gefunden wenn nur eine Stufe gerade ausgebaut wird und die andere nicht dann ist natürlich auch nur eine Variable gefüllt und deswegen zeigt er nix an.
Zuletzt bearbeitet: