salve, devo fare un countdown da inserire in una pagina usando però come riferimenti l'ora del server, mi avevano consigliato di farlo in jsp ma io nn lo so usare
mi sono ingegnato e ho fatto un mix di php e javascript
(ke nn conosco neanke troppo)
solo ke nn funziona :rollo:
l'errore sta nel javascript (almeno penso
), praticamente la prima volta ke kiamo la funzione passa il valore ke mi serve (e funge tutto) mentre alla rikiamata interna fa cilekka
la console javascript di firefox mi dice "Errore: countdowntime is not defined" in questa riga "setTimeout("countdown(countdowntime)",1000); //ricaricamento script dopo 1 secondo"
questo è il codice
Codice PHP:
<html>
<head>
<title>countdown</title>
<?
/* questo file imposta l'ora finale e quella attuale e visualizza il countdown */
// ora finale in formato timestamp (sarà letta da una query)
$endtime = mktime(11,20,0,9,27,2006); //11:20:00 27/9/2006
//echo "endtime : "; //controllo
//echo $endtime; //controllo
//echo "endtime in normalformat : "; //controllo
//echo date('d m Y H:i:s',$endtime); //controllo
// ora attuale in formato timestamp
$nowtime = time();
//echo " nowtime : "; //controllo
//echo $nowtime; //controllo
//echo "nowtime in normalformat : "; //controllo
//echo date('d m Y H:i:s',$nowtime); //controllo
// tempo rimanente
$countdowntime = $endtime - $nowtime;
//echo " tempo mancante : ";
//echo $countdowntime;
//$hours = round(($countdowntime/(60*60)),0);
//$minutes = round((($countdowntime%(60*60))/60),0);
//$seconds = round((($countdowntime%(60*60))%60),0);
//echo "tempo mancante normalformat : $hours : $minutes : $seconds";
?>
<script language="javascript1.2">
function countdown(countdowntime)
{
//document.write("dentroscript");//controllo
//document.write(countdowntime);//controllo
if (countdowntime >= 0)
{
//document.write("dentroif");//controllo
hours = Math.floor(countdowntime/(60*60));//calcolo ore
minutes = Math.floor((countdowntime%(60*60))/60);//calcolo minuti
seconds = Math.floor((countdowntime%(60*60))%60);//calcolo secondi
countdowntime = countdowntime - 1;//decremento tempo
var testo = hours + " : " + minutes + " : " + seconds;//testo da visualizzare
//document.write(testo);
document.getElementById("a").innerHTML = testo;
setTimeout("countdown(countdowntime)",1000); //ricaricamento script dopo 1 secondo
}
else
{
//document.write("dentroelse");
var testo = "finito";
document.getElementById("a").innerHTML = testo;
}
}
</script>
</head>
<body onLoad="countdown(<? echo $countdowntime; ?>)">
<div id="a">h:m:s</div>
</body>
</html>
p.s.
lo so ke è scritto con i piedi ma nn so fare di meglio