2014-02-25 3 views
0

최근에 저는 E-Library 프로젝트를 진행 중이며 사용자가 읽는 각 책에 대한 카운트 다운 타이머가 필요합니다.카운트 다운 자바 스크립트

예를 들어 '사용자'의 '사용자'는 '100 초'입니다. 책을 읽는 데 크레딧이 걸리고 책을 읽을 때만 시간이 줄어 듭니다.

<?php 
     require_once('DatabaseManager.php'); 
     $databaseManager = new DatabaseManager(); 
     $books = $databaseManager->getAllRows('books'); 
     while ($book = mysqli_fetch_assoc($books)) { 
      $_SESSION['timer1'] = $book['timer']; 
     } 
     ?> 
     <html> 
<head> 
<title>Countdown</title> 

    <script> 
    var clicked = false; 
    var sec = <?php echo $_SESSION['timer1'];?>; 

    function startClock() { 
     if (clicked === false) { 
      clock = setInterval("stopWatch()", 1000); 
      clicked = true; 
     } 
     else if (clicked === true) { 
     } 
    } 

    function stopWatch() { 
     sec--; 
     document.getElementById("timer").innerHTML = sec; 


    } 

    function updateValue() { 
     <?php 
     $time_update = $databaseManager->editRow('books', 'book_id', '1', 'timer', $_GET['REMAINING VALUE FROM COUNTDOWN STORED HERE']); 
     ?> 
    } 
    </script> 
</head> 
<body> 

    <input type="submit" id="start-clock" value="Start" name="submit" onClick="startClock()"/> 

    <div id="timer">0</div> 
    <input type="submit" id="stop-clock" value="Stop" name="submit" onClick="updateValue()"/> 
    </br> 

</body> 
</html> 

그래서 내가하고 싶은 것은 : 사용자가 백초의 신용 가치를 가지고 있으며, 그들은 45 초 동안을 읽을 때 55초의 나머지 값으로 저장됩니다 그래서 여기

내 코드입니다 데이터베이스를 자동으로. 'updateValue()'사용

그리고 다른 하나는 버튼 onClick을 사용해 보았습니다. 작동하지만 사용자가 브라우저를 닫을 때마다이 코드가 작동하도록하고 싶습니다.

미리 감사드립니다.

+0

[this] (http://stackoverflow.com/questions/3888902/javascript-detect-browser-close-tab-close-browser)를 참조하십시오. 그것은 도움이 될 수도 있습니다 – Rohan

답변

0

는 다음과 같은 작업을 수행 할 수 있습니다 사용자가 책을 읽고 때

는 서버에있는 모든 'n'을 초 메시지 (AJAX)를 보냅니다. 서버는 메시지 수신시 해당 사용자의 독서 시간 남은 시간을 'n'초 줄이고 그 시간을 다시 보냅니다.

시간의 왼쪽 값을받는 웹 페이지는 수신 된 값이 0이거나 음수이면 다른 페이지로 리디렉션됩니다.

이렇게하면 남은 시간을 최대 'n'초 오차로 추적 할 수 있습니다.

+0

하지만 난 아직도 그것을 할 수있는 방법을 그림 couldnt .. 나는 많은 것들을 시도하고 그들 대부분은 나를 위해 일하는 것 못해 – user2780977

관련 문제