Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Odliczanie
Forum PHP.pl > Forum > PHP
marcolo
Potrzebne mi odliczanie od 4 godzin w dół, tak aby na serwerze odliczał się czas, a gdy użytkownik otwiera stronę, to pobiera mu się aktualny czas z serwera i za pomocą js-a zmniejsza do 0 i zaczyna od nowa.
Pyton_000
Ok, specyfikację już znamy. To teraz jaki masz problem?
Neutral
rast.php:
  1. <button id="ajaxButton" type="button">Make a request</button>
  2. <div id="split3"></div>
  3. <div id="split2"></div>
  4. <div id="split"></div>


Kod
(function(){
    var httpRequest;
    document.getElementById("ajaxButton").addEventListener("click",makeRequest);
    
    function makeRequest() {
        document.getElementById("ajaxButton").disabled = 'disabled';
        ////////////////////////////
        
        ////////////////////////////
        
        httpRequest = new XMLHttpRequest();
        
        if(!httpRequest){
            alert('Giving up :( Cannot create an XMLHTTP instance');
            return false;
        }
        httpRequest.onreadystatechange = alertContents;
        httpRequest.open('POST','rast2.php?timer=20');
        httpRequest.send();
    }
    
    function alertContents(){
        if(httpRequest.readyState === XMLHttpRequest.DONE){
            if (httpRequest.status === 200) {
                var responsese = (httpRequest.responseText);
                var respons1 = document.getElementById('split');
                var respons2 = document.getElementById('split2');
                var respons3 = document.getElementById('split3');
                var dL = responsese.split(':');
                
                var count = 0;
                function count_down() {
                    if(count == 4){
                        null;//stop
                    }else {
                        respons3.innerHTML = dL[0];
                        var tozero = respons1.innerHTML = dL[2]--;
                        respons2.innerHTML = dL[1];
                        if(tozero == 0) {
                            dL[2]=59;
                            respons2.innerHTML = dL[1]--;
                        }
                        if(dL[1]==0) {
                            dL[1]=59;
                            dL[0]--;
                            count++;
                            console.log(count);
                        }
                    }
                }
                    
                setInterval(count_down,1000);
                
            }else{
                alert('There was a problem with the request.');
            }
        }
    }
    
})();

rast2.php:
  1. <?php
  2. $x = new DateTime();
  3. echo $_POST['timer']= $x->format('H:i:s');
  4. ?>
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.