2012-10-24 51 views
0

我在jquery中有一個計時器,我想在刷新頁面時保留該值。我用一些Ajax使用php會話變量。但是,當我刷新它保持的N-1的值,而不是N的會話變量N-1而不是N

例子:

我在20當第二我刷新什麼也沒發生。後來,當我在18秒更新一次回到它是20秒誰輸出

這裏是代碼:

<?php 
session_start(); 
if (isset($_GET['number'])) { 
$_SESSION['timer']=$_GET['number']; 
} 
?> 
<!DOCTYPE html> 
<html> 
    <head> 


<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> 
    <link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css" rel="stylesheet" type="text/css"/> 
    <script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js"></script> 
    <script src="cookie.js"></script> 

     <script> 

$(window).unload(function() { 

var number = $('#test').text(); 
alert(number); 
      $.get('divb.php',{number:number},function(resultat){ 
         return false;              
       }); 



});   


$(document).ready(function(){ 


var numb = 30 ;     
var numba = 100 ; 

function comptage() { 

setTimeout(comptage,1000); 
$('#test').html(numb); 
$("#progressbar").progressbar({ value: numba }); 

numb -- ; 
numba = numba - (numba/numb) ; 


if (numb < 0) 
{ 

numb = 0 ; 
numba = 0 ; 
} 



}; 

comptage(); 












    });  







      </script> 


<style > 

#affichage_point 

{ 
position:relative; 
    background-color: #FFFFFF; 
border: 1px solid #7375D8; 
width:450px ; 
height:5px ; 
    margin-left: 200px; 
    margin-top: 100px; 

    padding:30px; 

} 

    #progressbar { 

    width : 400px ; 

    } 


    #progressbar > div { 

    background: #7375D8; 

    } 


#bardivs { 
    width:400px; 
    position:absolute; 
     top:12px; 
     left: 50px; 


    } 

#test { 
    position:absolute; 
    top:5px; 
    left:5px; 
} 



</style> 






    </head> 


    <body> 


    <div id = "affichage_point"> 
    <div id="bardivs"> 
    <div id="progressbar"></div> 
    <div id="test"></div> 
    </div> 
    </div> 


<?php if (isset($_SESSION['timer'])) { ?> 
    <div id ="r6"><?php echo $_SESSION['timer'] ?> </div> <br/> 
    <?php } ?> 


     </body> 
</html> 

回答

0

只需使用此代碼:

所以我們只保留第一次訪問的時間和產生經過的時間。無需存儲查詢(GET)這個變量

session_start(); 

if (!isset($_SESSION['start_time'])) { 
    $_SESSION['start_time'] = time(); 
} 

$elapsedTime = time() - $_SESSION['start_time']; 

但你得復位START_TIME莫名其妙,想,當一個用戶決定從頭再來

+0

你好vladim。事實上,我真的需要在函數settimeout上創建的變量numb存儲在會話變量中。事實上,如果我創建會話['計時器']的點擊jQuery的變量存儲和輸出良好的數字。但是當我在卸載時它不起作用。我想知道是否卸載jquery沒有留下足夠的時間爲php頁面考慮會話變量 – patipat

+0

你能解釋你在做什麼嗎?請提供商業流程。 –

+0

是的。我需要用30秒的計時器來構建一個選擇題。一旦30秒過去了,你就會轉到下一個問題。我不希望用戶刷新頁面並再次有30秒鐘,我希望他恢復到刷新前的時間。如果他在18秒內刷新,那麼他將有18秒的時間來回答問題。 – patipat