2011-08-05 7 views
0

概要:挿入された番号からカウントアップできるカウンタが必要です。ユーザがいなくても数え続けることができ、ウェブサイト内で発生したカウントを視覚的に表示できます。私はこれをここに残すようにこれを試してみようと思っています。どんな助けもありがとう。私はこれをJoomlaのモジュールに入れて、近い将来に無料でリリースする予定です。PHP/Javascriptタイマーとカウンタ

の入力は以下のとおりです。タイマーを構築するための各 間隔

PHPクラスのために追加する

  • 開始量間隔を秒単位でを更新するために、レート

    class Counter { 
        var $baserate; 
        var $rate; 
        var $start; 
        var $seconds; 
        var $now; 
        var $month; 
        var $day; 
        var $year; 
        var $saving; 
        var $growthrate; 
    
        function Counter($rate, $baserate,$seconds,$year,$day,$month) 
        { 
         $this->rate = $rate; 
         $this->base = $baserate; 
        $this->seconds = $seconds; 
        $this->year = $year; 
        $this->day = $day; 
        $this->month= $month; 
        $this->carbonsaving(); 
        } 
    
        function carbonsaving() 
        { 
        $now = time(); 
        $start = mktime(0,0,0,$this->month,$this->day,$this->year); 
        $growthrate = $this->rate * (60/$this->seconds); 
         $saving = round(((($now - $start) * $growthrate) + $this->base)); 
        return $saving; 
         } 
    
    } 
    $count1 = new Counter(0,1, 2,2011,4,8); 
    $count2 = new Counter(15,1, 1,2011,1,8); 
    $width = 300; 
    $height = 350; 
    ?> 
    

    Javascript Webページの更新間隔を設定し、初期値の関数を呼び出します。 これらは、今同期して

    var car1 = <?php print($count1->carbonsaving()); ?>; 
    var car2 = <?php print($count1->carbonsaving()); ?>; 
    function incs1() 
    { 
    car1 = car1 + <?php print($count1->rate);?> ; 
    document.getElementById("carb1").innerHTML=car1; 
    } 
    function incs2() 
    { 
    car2 = car2 + <?php print($count2->rate);?> ; 
    document.getElementById("carb2").innerHTML=car2; 
    } 
    setInterval('incs1()', <?php print($count1->seconds);?> *1000); 
    setInterval('incs2()', <?php print($count2->seconds);?> *1000); 
    

    最後に、タイマーのセクションであるように思われません。私はロードを取り除き、ボディにonpageloadイベントを追加して、ページがロードされるとすぐに(間隔を待つのではなく)数値がロードされるようにします。

    <span id="carb1">Loading...</span><br /> 
    <span id="carb2">Loading...</span><br /> 
    <span id="carb3">Loading...</span> 
    

    現在のスクリプト: 現在のスクリップは、ページ上の3つのカウンタのそれぞれのオブジェクトを作成し、クラスによって実行されています。現在、カウンターにはいくつかの問題があります。

    1. カウントと間隔が同期していません。つまり、ビジュアルウェブサイト上のスクリプトの更新間隔は、スクリプト内のカウントと同期していません。私のロジックはある時点でオフになっている必要があります。

    2. 開始する番号を入力する際の問題。私はこれを達成するための機能をまだ追加していない。誰もが簡単に入力番号をスクリプトに入力し、このプログラムの正しい開始時刻を作成する方法を知っていますか?

+0

'<?='の代わりに '<?PHPのprint' –

+0

どのように再計算してみてくださいについてjavascript関数内の時間に基づいており、短い間隔でその機能を実行させます。私はjavascriptタイミングの正確さを数えることはできないと思う。現在のタイムスタンプに基づいて再計算した場合。同期する可能性があります。 –

答えて

1

だから私の数学でした。今働いている。

使用できる
function carbonsaving() 
{ 
    $now = time(); 
    $start = mktime(0,0,0,$this->month,$this->day,$this->year); 
    $growthrate = ($this->rate/$this->seconds) ; 
     $saving = round(((($now - $start) * $growthrate)+$this->base)); 
    return $saving; 
}