PHP Live Countdown
Hoe kan ik de var start_num via een PHP variabele inladen? Deze wordt nu berekend via de gegevens die uit het formulier komen.
Uiteindelijk wil ik een datum omzetten naar seconden en de countdown daarnaartoe laten aftellen.
<script>
function do_countdown() {
var start_num = document.getElementById("value").value;
var unit_var = document.getElementById("countdown_unit").value;
start_num = start_num * parseInt(unit_var);
var countdown_output = document.getElementById('countdown_div');
if (start_num > 0) {
countdown_output.innerHTML = format_as_time(start_num);
var t=setTimeout("update_clock(\"countdown_div\", "+start_num+")", 1000);
}
return false;
}
function update_clock(countdown_div, new_value) {
var countdown_output = document.getElementById(countdown_div);
var new_value = new_value - 1;
if (new_value > 0) {
new_formatted_value = format_as_time(new_value);
countdown_output.innerHTML = new_formatted_value;
var t=setTimeout("update_clock(\"countdown_div\", "+new_value+")", 1000);
} else {
countdown_output.innerHTML = "And... Stop!";
}
}
function format_as_time(seconds) {
var minutes = parseInt(seconds/60);
var seconds = seconds - (minutes*60);
if (minutes < 10) {
minutes = "0"+minutes;
}
if (seconds < 10) {
seconds = "0"+seconds;
}
var return_var = minutes+':'+seconds;
return return_var;
}
Gewijzigd op 24/10/2012 19:33:41 door Danny Kater
Tevens wordt de times pas geactiveerd als de Go button is gedrukt. Hoe kan ik zorgen dat de timer standaard loopt? Er zal namelijk altijd een waarde zijn voor var start_num
Toevoeging op 24/10/2012 20:19:09:
Hmm het eerste probleem heb ik al gevonden, misschien niet de meest ideale:
var start_num =
oh leuk ... ik had hem ook al gevonden
De timer begint nu te lopen na een druk op de 'Go' knop. Weet jij hoe ik dit kan veranderen, zodat de timer altijd loopt?
<form id="countdown_form" onsubmit="return do_countdown();">
<input type="submit" value="Go" />
do_countdown(); direct na <script> zetten
Ik heb hem direct onder de <script> gezet
oh sorry, je maakt geen gebruik van jquery (document ready). wss maakt de volgorde dan wel uit, dus zou je hem onder je functie moeten zetten!
<body onload="do_countdown();">
en je kan ook doen in js:
window.onload = do_countdown;
die tweede is misschien wat mooier dan staat er geen JS inline
Gewijzigd op 24/10/2012 21:40:30 door Flip --
Ik haal rijen uit een database. In dit geval zijn dat er twee en met deze rijen laat ik de CountDown zien. Echter wordt de DIV countdown_div maar 1 keer, alles bij de eerste rij, weergeven.
De cellen haal ik op via:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
<?php
$sql = "SELECT * FROM wv_veilingen WHERE endtime > '".$huidigedatum."' ORDER BY endtime DESC";
if ($qry = mysql_query($sql)) {
while ($rij = mysql_fetch_assoc($qry)) {
include ("countdownscript.php"); // Bevat de functie ed
// Met hier de div: <div id="countdown_div"> </div>
}
}
?>
$sql = "SELECT * FROM wv_veilingen WHERE endtime > '".$huidigedatum."' ORDER BY endtime DESC";
if ($qry = mysql_query($sql)) {
while ($rij = mysql_fetch_assoc($qry)) {
include ("countdownscript.php"); // Bevat de functie ed
// Met hier de div: <div id="countdown_div"> </div>
}
}
?>
Gewijzigd op 24/10/2012 22:04:06 door Danny Kater
include ...;
$i = 0;
while {
functie_naam('countdown_div'.$i); // deze functie komt uit je include
$i++;
}
dit is pseudo code, geen php code
en dan in je function_naam functie:
function functie_naam($id_van_element) {
print("var countdown_output = document.getElementById('".$id_van_element."');");
}