2012-07-09 49 views
1

我試圖用一些信息更新我的數據庫。關鍵信息之一是自頁面首次加載以及用戶單擊按鈕後經過了多長時間。我的代碼如下所示:

<script> 
function pauseVideo() { 
    $.get("video_pause.php?pause=" + timePassed + "&videoid=<?php echo $_GET['sessionid']; ?>&sessionid=<?php echo $_GET['videoid']; ?>"); 
} 
</script> 

<html> 
<div id="pause" onclick="pauseVideo()">PAUSE</div> 
</html> 

我的PHP是精做忽略。我遇到麻煩的部分是'timePassed'。我需要這是從第一次加載頁面開始的秒數,並且這個人點擊了PAUSE div。

我想我需要運行一個函數,點擊找到傳遞的時間,然後在$ .get()中使用該時間變量?

回答

0

喜歡的東西:

var startTime = (new Date).getTime()/1000; 
function pauseVideo() { 
    var curTime = (new Date).getTime()/1000; 
    var timePassed = Math.floor(curTime - startTime); 
    $.get("video_pause.php?pause=" + timePassed + "&videoid=<?php echo $_GET['sessionid']; ?>&sessionid=<?php echo $_GET['videoid']; ?>"); 
} 
+1

以timePassed的底價值。 – maxhud 2012-07-09 17:59:18

+0

@maxhud好點,編輯。 – jeroen 2012-07-09 18:00:39

+0

你在哪裏定義getTime()?我應該事先做到這一點:var d = new Date(); var n = d.getTime(); ? – AzzyDude 2012-07-09 18:04:35

-1

如果生成服務器端用下面的代碼的頁面,你可以只傳遞當前時間的腳本,如:

<html> 
    <div id="pause" onclick="pauseVideo('" + curTime +"')">PAUSE</div> 
</html> 

(需要回顯語法)

或將其置於隱藏字段並將其傳回服務器。 (做你的PHP計算) 這種方式,你會得到通過,因爲被請求的頁面的時候......

1

當文檔載入,只需保存當前時間變量:

$(document).ready(function() { 
    var timeWhenLoaded = (new Date).getTime()/1000; 
}); 

然後,點擊暫停按鈕時,計算出經過的時間:

function pauseVideo() { 
    var currTime = (new Date).getTime()/1000; 
    // time in seconds 
    var timePassed = Math.floor(currTime - timeWhenLoaded); 
    $.get("video_pause.php?pause=" + timePassed + "&videoid=<?php echo $_GET['sessionid'];  ?>&sessionid=<?php echo $_GET['videoid']; ?>"); 
} 
1

得到你的HTML擺脫的onclick,並刪除現有的功能,那麼把它放進你的頁面的頭部分:

(function(){ 
    var loadTime = (new Date).getTime(); // Page started loading 

    $(function(){ 
     // DOM fully loaded, so move the assignment here if that is what 
     // you want to consider as the load time 

     $('#pause').click(function(){ 
      $.get("video_pause.php?pause=" + Math.floor(((new Date).getTime() - loadTime)/1000) + "&videoid=<?php echo $_GET['sessionid']; ?>&sessionid=<?php echo $_GET['videoid']; ?>"); 
     }); 
    }); 

})(); 

另請注意,您永遠無法相信服務器端的變量。如果他們真的想要,任何人都可以輸入一個負數,甚至輸入「比薩」這個詞。