Current location: Hot Scripts Forums » Programming Languages » PHP » php for countdown timer


php for countdown timer

Reply
  #1 (permalink)  
Old 10-07-05, 07:38 PM
Makien Makien is offline
Newbie Coder
 
Join Date: Oct 2005
Posts: 6
Thanks: 0
Thanked 0 Times in 0 Posts
php for countdown timer

I posted on another oart of the board and was instructed my best way to go was php, msql, asp. What I want to do is keep this timer running after the time has been put into feilds.
I'm gonna try to do this with php and need a little (or alot) of help on how to keep timerr alive after enter whether anyones online or not.

Any help is appreciated, thanx


Code:
-----------------script----------------
if(navigator.userAgent.match(/(?!Opera)(MSIE)|(Gecko)/))new function()
{
var DOM_TARGET="target";

var TARGET=window.attachEvent?"srcElement": DOM_TARGET;
var MAX_TICKS=60*60*99+60*59+59;
var ORIG_TITLE=document.title;
var DLG_URL="";
var IE_DLG_STYLE="center:yes; dialogWidth:325px; dialogHeight:175px; status:no";
var GK_DLG_STYLE="dependent,width=325,height=175";
var COUNT_DOWN="CH_dtimer";
var COUNT_UP="CH_utimer";
var clockList=[];


function addListener(e,ev,listener)
{
if(window.attachEvent)
{
e.attachEvent("on"+ev,listener);
}
else
{
e.addEventListener(ev,listener,false);
}
}

function resetHandler(clock)
{
clock.reset();clock.eReset.disabled=true;clock.ePause.disabled=true;clock.eResume.disabled=true;clock.eStart.disabled=false;
if(clock.type==COUNT_DOWN)
{
clock.disableTf(false);clock.eMinutes.focus();
}
}

function initHandlers(clock)
{
function handler(event)
{
switch(event[TARGET])
{
case clock.ePause:clock.stop();clock.eResume.disabled=false;clock.eResume.focus();
clock.ePause.disabled=true;
break;
case clock.eResume:clock.start();
clock.eResume.disabled=true;
clock.eReset.focus();
clock.ePause.disabled=false;
break;
case clock.eReset:resetHandler(clock);
break;
case clock.eStart:if(clock.eStart.disabled)return;
default:function getNumberInput(e)
{
var s=e.value;
if(!s.length)
{
return 0;
}
var i=parseInt(e.value);
if(isNaN(i)){switch(e)
{
case clock.eHours:alert($UMSG_INVALID_HOURS);
break;
case clock.eMinutes:alert($UMSG_INVALID_MINUTES);
break;
case clock.eSeconds:alert($UMSG_INVALID_SECONDS);
}
e.value="";e.focus();
}
else if(s.length!=new String(i).length)
{
e.value=new String(i);
}
return i;
}
if(clock.type==COUNT_UP)
{
clock.eStart.disabled=true;
clock.ePause.disabled=false;
clock.eReset.disabled=false;
clock.eReset.focus();
clock.start();
return;
}
var hrs=getNumberInput(clock.eHours);
if(isNaN(hrs))
{
return;
}
var mins=getNumberInput(clock.eMinutes);
if(isNaN(mins))
{
return;
}
var secs=getNumberInput(clock.eSeconds);
if(isNaN(secs))
{
return;
}
if(hrs+mins+secs==0)
{
alert($UMSG_NO_INPUT);
return;
}
if(mins>59)
{
alert($UMSG_INVALID_MINUTES);
clock.eMinutes.focus();
return;
}
if(secs>59)
{
alert($UMSG_INVALID_SECONDS);
clock.eSeconds.focus();
return;
}
clock.eStart.disabled=true;
clock.ePause.disabled=false;
clock.eReset.disabled=false;
if(event[TARGET]==clock.eStart)
{
clock.eReset.focus();
}
clock.disableTf(true);
clock.start(hrs*3600+mins*60+secs);
break;
}
}
addListener(clock.eStart,"click",handler);
addListener(clock.ePause,"click",handler);
addListener(clock.eResume,"click",handler);
addListener(clock.eReset,"click",handler);}

function initClock(clockType,number)
{
function getElement(id)
{
return document.getElementById(clockType+number+"_"+id);
}
if(!getElement("digits"))return false;
var clock=new Clock();
clockList[clockList.length]=clock;
function Clock()
{
this.type=clockType;
this.eCont=document.getElementById(clockType+number);
this.eDigits=getElement("digits");
this.eStart=getElement("start");
this.ePause=getElement("pause");
this.eResume=getElement("resume");
this.eReset=getElement("reset");
if(clockType==COUNT_DOWN)
{
this.eHours=getElement("hours");
this.eSeconds=getElement("seconds");
this.eMinutes=getElement("minutes");
this.eHours.maxLength=this.eMinutes.maxLength=this.eSeconds.maxLength=2;
function handler(event)
{
if(String.fromCharCode(event.keyCode)=="\r")
{
clock.eStart.click();
if(TARGET==DOM_TARGET)
{
return false;
}
else{event.returnValue=false;
}
}
}
addListener(this.eHours,"keydown",handler);
addListener(this.eMinutes,"keydown",handler);
addListener(this.eSeconds,"keydown",handler);
}
this.cTicks=0;
this.eDigits.innerHTML="00:00:00";
Clock.ticker=function()
{
if(clock.type==COUNT_UP)
{
++clock.cTicks;clock.showTime();
}
else
{
clock.showTime();
if(clock.cTicks)
{
--clock.cTicks;
}
else
{
clock.stop();
clock.ePause.disabled=true;
clock.eResume.disabled=true;
clock.eReset.disabled=true;
window.focus();
if(window.showModalDialog&&window.attachEvent){showModalDialog(DLG_URL,clockList,IE_DLG_STYLE);
}
else
{
window.open(DLG_URL,"",GK_DLG_STYLE).focus();
}
clock.eReset.disabled=false;
resetHandler(clock);clock.eReset.click();
}
}
};
this.showTime=function()
{
if(this.cTicks<=MAX_TICKS)
{
this.eDigits.innerHTML=Math.floor(this.cTicks/3600/10)+""+Math.floor(this.cTicks/3600%10)+":"+Math.floor(this.cTicks%3600/60/10)+""+Math.floor(this.cTicks%3600/60%10)+":"+Math.floor(this.cTicks%3600%60/10)+""+this.cTicks%3600%60%10;
document.title=this.eDigits.innerHTML+" "+ORIG_TITLE;
}
};
this.disableTf=function(flag)
{
this.eHours.disabled=this.eMinutes.disabled=this.eSeconds.disabled=flag;
};
this.start=function(newCountDownFrom)
{
if(newCountDownFrom)
{
this.cTicks=newCountDownFrom;this.showTime();
--this.cTicks;
}
this.intervalID=setInterval(Clock.ticker,1000);
};
this.stop=function()
{
clearInterval(this.intervalID);
this.intervalID=null;
};
this.reset=function()
{
this.stop();
this.cTicks=0;this.showTime();
};
this.isActive=function()
{
return this.intervalID!=null;
};
if(this.type==COUNT_DOWN)
{
this.disableTf(false);
}
this.eStart.disabled=false;
this.ePause.disabled=true;
this.eResume.disabled=true;
this.eReset.disabled=true;initHandlers(this);
}
return true;
}
for(var u=1;initClock(COUNT_UP,u);++u);
for(var d=1;initClock(COUNT_DOWN,d);++d);
for(var i=0;i<clockList.length;++i)
{
clockList[i].eCont.style.visibility="visible";
}
if(!window.$NO_CD_FOCUS&&d!=1)
{
clockList[u-1].eMinutes.focus();
}
}
--------end script--------
--------html---------
<table border="2">
<tr id="CH_dtimer1" class="timer">
<td><div class="title" class="field_cont" class="btn_cont">*name here*</div></td>
<td><div id="CH_dtimer1_digits" class="digits"></div></td>
<td class="timer_pad"><label class="field">Hours:<input id="CH_dtimer1_hours" class="hours" type="text" size="2" disabled="disabled" />
</label>

<label class="field">Minutes:<input id="CH_dtimer1_minutes" class="minutes" type="text" size="2" disabled="disabled" />
</label>

<label class="field">Seconds: <input id="CH_dtimer1_seconds" class="seconds" type="text" size="2" disabled="disabled" />
</label>
<input id="CH_dtimer1_start" class="start" type="button" value="Start" disabled="disabled" />
<input id="CH_dtimer1_pause" class="pause" type="button" value="Pause" disabled="disabled" />
<input id="CH_dtimer1_resume" class="resume" type="button" value="Resume" disabled="disabled" />
<input id="CH_dtimer1_reset" type="button" value="Reset" disabled="disabled" />
</div>
</td>
</tr>
</table>
------------------end html---------------------
Reply With Quote
  #2 (permalink)  
Old 10-10-05, 02:05 PM
dennispopel dennispopel is offline
Coding Addict
 
Join Date: Mar 2005
Posts: 263
Thanks: 0
Thanked 0 Times in 0 Posts
Hmm... Unsure what you want to accomplish, but as I understand you wand a person enter some values, start the timer and after he/she returns to your page, to see the timer that was ticking all the time?

For that put up a form that will trigger server-side PHP script to store the values in a db or whereever, and on subsequent visits select the value, use difference with current time and come up with a PHP-generated JS that will preset the values on the client side. You can use cookies to identify visitors or have a login system.
__________________
onPHP5.com - PHP5: Articles, News, Tutorials, Interviews, Software and more
Reply With Quote
  #3 (permalink)  
Old 10-10-05, 07:02 PM
Patiek Patiek is offline
Wannabe Coder
 
Join Date: Nov 2003
Posts: 165
Thanks: 0
Thanked 0 Times in 0 Posts
If you are looking to store values for everyone you will have to use files or some other method such as a database (for example, a mysql database).

There is actually a bit of work involved, especially if this is the case. You are probably better off putting this in the script request category.
Reply With Quote
Reply

Bookmarks


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On

Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
2 profitable script sites for sale cms-master.com General Advertisements 3 07-03-07 10:17 AM
php timer djew3001 PHP 11 08-16-06 05:24 PM
PHP Downside--Solutions? Amulet PHP 10 07-15-05 08:26 AM
PHP multi-dimensional array sorting issue aqw PHP 2 06-24-05 11:09 PM
PHP / Graphic Developers someotherguy582 Job Offers & Assistance 1 06-05-05 07:40 PM


All times are GMT -5. The time now is 06:14 AM.
vBulletin® Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.