0

これをajaxに入れようとしているので、人がjqueryでボタンをクリックするたびに、phpセッションが作成されます。これを使うだけで可能ですか?

var milisec=00;
var seconds=60; 
function display(){ 
    if (milisec<=0){ 
       milisec=9 
       seconds-=1 
    } 
    if (seconds<=-1){ 
       milisec=0 
       seconds+=1
    } 
    else {
       milisec-=1 
       document.getElementById('counter').innerHTML= seconds+":"+"0"+milisec+"s";
       setTimeout(display,100) 
    }
    if (seconds < 10) {
       document.getElementById('counter').innerHTML=  "0"+seconds+":"+"0"+milisec+"s";
    }
} 
display()

ajax を使用して、PHP セッションを使用して次のページに到達するまでにかかった時間を投稿する必要があります。

4

2 に答える 2

1
  var seconds = 60;
  var milisec = 0;
  var stop_counter = false;    

  function display(){ 

    if(milisec == 0)      
      seconds = seconds - 1;

    milisec = milisec - 1;

    if(milisec == -1)
      milisec = 10;        

    $('#counter').html((seconds < 10 ? "0" : "") + seconds + ":0" +milisec+ "s");        

    if( (seconds == 0 && milisec == 0 && stop_counter == true) == false )
      setTimeout(function(){ display(); }, 100);

  }     


  $(document).ready(function(){

    display();

    $('#button').click(function(){

      $.post('myphpfile.php', {time : $('#counter').text()}, function(data){

        alert('Data from myphpfile.php: ' + data);
        stop_counter = true; //stop counter now

      });

    });

  });

myphpfile.php

echo 'you clicked button when counter was ' . $_POST['time'];
//you can do any php stuff here

このコードはあなたが望むことをするはずですが、私はそれをテストしませんでした。

jQueryライブラリの関数$.post()は、データをphpスクリプトに渡し、サイトなどに表示できるデータを取得することもできます。

ところで、1秒は100ミリ秒ではなく1000ミリ秒です

私の英語でごめんなさい

于 2012-04-25T10:11:44.847 に答える
0

"seconds" and "milisec"はい、ajax呼び出しでの値を渡すことでそれを行うことができます

$(document).ready(function(){  
    $('#button').click(function(){
      $.post('session_file.php', {secs : seconds,millisecs:milisec}, function(data){
      });
     });
 }); 

secs and millisecs したがって、session_file.phpでは、セッション内の変数の値を書き込むことができます

于 2012-04-25T10:20:22.857 に答える