PHP Live Countdown

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Danny Kater

Danny Kater

24/10/2012 19:33:01
Quote Anchor link
Beste mensen,

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
 
PHP hulp

PHP hulp

19/01/2022 15:13:53
 
Flip --

Flip --

24/10/2012 19:49:55
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
$start_num
= 8;
print('var start_num = '.$start_num.";\n");
?>
 
Danny Kater

Danny Kater

24/10/2012 20:16:41
Quote Anchor link
Hmm ik begrijp niet helemaal hoe je via print() deze php variabele in Javascript krijgt?

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 =
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo $start_num ?>
 
Flip --

Flip --

24/10/2012 20:51:56
Quote Anchor link
oh leuk ... ik had hem ook al gevonden
 
Danny Kater

Danny Kater

24/10/2012 21:13:50
Quote Anchor link
Flip,

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" />
 
Jaron T

Jaron T

24/10/2012 21:18:10
Quote Anchor link
do_countdown(); direct na <script> zetten
 
Danny Kater

Danny Kater

24/10/2012 21:23:26
Quote Anchor link
Hmm dan krijg ik een Call to undefined function do_countdown()

Ik heb hem direct onder de <script> gezet
 
Jaron T

Jaron T

24/10/2012 21:34:25
Quote Anchor link
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!
 
Andy V

Andy V

24/10/2012 21:35:59
Quote Anchor link
waarom niet gewoon:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
var start_num = <?=$start_num?>;
Gewijzigd op 24/10/2012 21:36:35 door Andy V
 
Flip --

Flip --

24/10/2012 21:38:21
Quote Anchor link
denk dat je can doen:
<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 --
 
Danny Kater

Danny Kater

24/10/2012 22:03:21
Quote Anchor link
Super mensen! Het script voert nu altijd uit en de timer loopt dus constant. Nog een probleempje:

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)
PHP script in nieuw venster Selecteer het PHP script
1
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">&nbsp;</div>


}
}

?>
Gewijzigd op 24/10/2012 22:04:06 door Danny Kater
 
Flip --

Flip --

25/10/2012 15:36:34
Quote Anchor link
je moet sowieso geen include in een loop zetten, doe het zo:

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."');");
}
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.