0

jquery にタイマーがあり、ページを更新するときに値を保持したいと考えています。私はいくつかのajaxでphpセッション変数を使用しています。しかし、リフレッシュすると、N ではなく N-1 の値が保持されます。

例 :

リフレッシュしても何も起こらない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>
4

1 に答える 1

0

このコードを使用するだけです:

したがって、最初の訪問時間を保持し、経過時間を生成します。この変数をクエリ (GET) に格納する必要はありません

session_start();

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

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

しかし、どうにかして start_time をリセットしなければなりません。ユーザーがいつ最初からやり直すかを推測してください。

于 2012-10-24T19:50:15.753 に答える