PHP und Javascript

  • Themenstarter Themenstarter unixgate
  • Beginndatum Beginndatum
U

unixgate

Hi,

Ich habe folgendes Problem:

Ich möchte einen Javascript countdown in PHP einbinden:

als erstes kommt das:

PHP:
<?php
$anfang = $bau['anfang'];
$ende = $bau['ende'];                 
$dauer = $ende - $time;
$beschreibung = $bau['beschreibung'];
?>

$dauer soll die countdown Zeit sein

hier ist der javascript teil:

Code:
<script language="Javascript"> 
<!-- 
var countdown = "10"; 

function doCount() 
{ 
if (countdown > 0){ 
    countdown-- 
} 
else{ 
    // Action die nach Ablauf des Countdowns ausgeführt werden soll... 
} 

var s = countdown; 
var h = Math.floor(s/3600); 
var m = Math.floor((s - (h * 3600))/60); 
s = (s-(h*3600))%60 

window.status=h+":"+m+":"+s+ " bis zur nächsten Seite" 

window.setTimeout('doCount()',1000) 
} 

doCount(); 
//--> 
</script>

Jetzt soll dieser PHP code oben hinplatziert werden , wo steht " // Action die nach Ablauf des Countdowns ausgeführt werden soll... "

PHP:
echo "
				  <tr>
                    <td height=\"15\">
                    <div align=\"left\">
                    Fertig</div>
                    </td>
                    <td height=\"15\">
                    <div align=\"left\">
                     ".$beschreibung."</div>
                    </td>
                  </tr>";
				   mysql_query("delete from bauauftrag where user_id='$user_id' and beschreibung='$beschreibung'");
				   $typ = $bau['typ'];
				   if($typ == 'Gebaude')
				   {
				          $neupunkte = $bau['punkte'];
				          $stufe = $bau['stufe'];
				          $bauname = $bau['name'];
				          $feldneu = $temp_planet['besetzt'];
				          $feldneu = $feldneu + 1;
				          $neutitan = $restitan + $titan;
				          $neukristall = $restkristall + $kristall;
				          $neuwasser = $wasser + $restwasser;
				          $neuswasser = $swasser + $restswasser;
				          
				          mysql_query("update planet set $bauname='$stufe', besetzt='$feldneu', timestamp='$time', titan='$neutitan', kristall='$neukristall', wasserstof='$neuwasser', swasserstof='$neuswasser' where user_id='$user_id' and planet_nr='$planetid'");
				          $altpunkte = $punkte;
				          $neupunkte = $neupunkte + $altpunkte;
				          
				          
				          mysql_query("update user set punkte='$neupunkte' where username='$name'");
				   }else{}

kann mir da jemand helfen?
 
Das kannst du nicht unmittelbar lösen, da der PHP Code komplett interpretiert wird, bevor irgendwas an den Browser geschickt wird und JavaScript komplett Clientseitig läuft.

Einziges mir bekanntes mögliches Workaround wäre, in das else eine Weiterleitung auf das Script zu schreiben.
 
Also die Variable $dauer kannst du so in JS einbinden:

var countdown = <?=$dauer?>;

Nach Ablauf des Coundowns würde ich einen neue Seite mit den entsprechenden Parametern als Übergabe aufrufen oder die gleiche Seite mit der entsprechenden Anzeige z.B. über ein Parameter mode gesteuert.
 
Zurück