savsoft
asked on
Need timmer code in java script
I have time value in post like :
$ti=$_POST['ti']
and assume $ti equal to 5 min
i need some code which continuous show decreasing time like:
4.59 min after second 4.58 ........ so on
i have some code but it shows time in seconds and use input field...
please help..
$ti=$_POST['ti']
and assume $ti equal to 5 min
i need some code which continuous show decreasing time like:
4.59 min after second 4.58 ........ so on
i have some code but it shows time in seconds and use input field...
please help..
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
I'm sorry, but sam2912's code doesn't work entirely because it not allows to get $ti value. Using window.onload, your script run before $ti value is getted so countdown will start always from 5, the default value. I made a little modification posted in code snippet below.
Hope this helps
Hope this helps
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
<script type="text/javascript">
//<![CDATA[
var time = null;
function start() {
timerDisplay = document.getElementById('timer');
time = parseFloat(timerDisplay.innerHTML);
// time = isNaN(time)?5:time; // default time // commented because not useful
timerDisplay.innerHTML = time.toFixed(2).replace('.', ':');
setInterval(countdown, 1000);
}
function countdown() {
if(time > 0.01) {
time -= 0.01;
if(time%1 > 0.59) time = Math.floor(time) + 0.59;
timerDisplay.innerHTML = time.toFixed(2).replace('.', ':');
} else timerDisplay.innerHTML = "0:00";
}
//]]>
</script>
</head>
<body>
<?php
if (isset($_REQUEST['ti'])){
$ti = $_REQUEST['ti'];
}else{
$ti = 5;
}
echo "Time left: <span id='timer'>$ti</span>";
?>
<?php
echo "<br><br>INSOMMA $ti<BR>";
echo "<script type='text/javascript'>start();</script>";
?>
</body>
</html>
Someone can tell me why in my test the sam2912's script didn't get $ti value and always countdfown started from 5?
This only because I would understand where is my error, if one error I made... Thanks
This only because I would understand where is my error, if one error I made... Thanks
<?= $ti ?> is a PHP variable printed into the span. It should be a positive number. Otherwise, the code will not be able to parse the value, and will take 5 as the default.
Thank,sam. But I wrote:
<?php
if (isset($_REQUEST['ti'])){
$ti = $_REQUEST['ti'];
}
?>
leaving your code untouched. Then, if I typed http://localhost/countdown.php?ti=10 countdown didn't start from 10 but from 5. This is what I don't understand. I post the entire code I tried: it doesn't work. Bye
<?php
if (isset($_REQUEST['ti'])){
$ti = $_REQUEST['ti'];
}
?>
leaving your code untouched. Then, if I typed http://localhost/countdown.php?ti=10 countdown didn't start from 10 but from 5. This is what I don't understand. I post the entire code I tried: it doesn't work. Bye
<?php
if (isset($_REQUEST['ti'])){
$ti = $_REQUEST['ti'];
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
<script type="text/javascript">
//<![CDATA[
var time = null;
window.onload = function() {
timerDisplay = document.getElementById('timer');
time = parseFloat(timerDisplay.innerHTML);
time = isNaN(time)?5:time; // default time
timerDisplay.innerHTML = time.toFixed(2).replace('.', ':');
setInterval(countdown, 1000);
}
function countdown() {
if(time > 0.01) {
time -= 0.01;
if(time%1 > 0.59) time = Math.floor(time) + 0.59;
timerDisplay.innerHTML = time.toFixed(2).replace('.', ':');
} else timerDisplay.innerHTML = "0:00";
}
//]]>
</script>
</head>
<body>
Time left: <span id="timer"><?= $ti ?></span>
</body>
</html>
ASKER
I have added <?php $ti;?>
in line no 17 of sam2912
time = isNaN(time)?<?php $ti;?>:time; // default time
in line no 17 of sam2912
time = isNaN(time)?<?php $ti;?>:time; // default time
in that case you can remove these two lines of code:
time = parseFloat(timerDisplay.in nerHTML);
time = isNaN(time)?5:time; // default time
and replace with
time = <?= php $ti; ?>;
time = parseFloat(timerDisplay.in
time = isNaN(time)?5:time; // default time
and replace with
time = <?= php $ti; ?>;
Thank savsoft: this makes clear all things for me.
ASKER
i have some problem.
i want to send time at any instant by click on form submit button.
some thing like this:
<input type="hidden" name="instant_time" value="<span id="timer"><?= $ti ?></span>">
please help me...
i want to send time at any instant by click on form submit button.
some thing like this:
<input type="hidden" name="instant_time" value="<span id="timer"><?= $ti ?></span>">
please help me...
Honestly you should open a new question: two months are past from the closing this question, the problem is not the same (it's only related to the original one) and here you can't give points for new solution.
However, you can try this:
<input type="hidden" name="instant_time" value="<span id="timer"><?php= $ti ?></span>">
try
<input type="hidden" name="instant_time" value="<?php= $ti ?>">
Cheers
However, you can try this:
<input type="hidden" name="instant_time" value="<span id="timer"><?php= $ti ?></span>">
try
<input type="hidden" name="instant_time" value="<?php= $ti ?>">
Cheers
it doesn't work for less then 8 minutes
Open in new window