2012-05-04 52 views
-1
<?php 
    session_start(); 

    if(isset($_SESSION['views'])) 
    $_SESSION['views']=$_SESSION['views']+1; 

    else 
    $_SESSION['views']=1; 
    echo "Views=". $_SESSION['views']; 
    echo '<br>'."<a href='destroy.php'>Set Counter1</a>"; 
    ?> 

上面的代碼是維護一個計數器,每次用戶刷新頁面時它都會增加。我想做同樣的工作,但與JavaScript,但無法找到任何東西在線幫助plz使用javascript的計數器

+1

???沒有冒犯,但是......首先,學習Javascript,然後開始寫JS代碼。這是一個非常非常非常基礎和廣泛的問題。你需要一個輔導網站,而不是這個。當你寫的JS代碼有問題時,再問一次。 –

+1

看着你的PHP代碼,你只需要一個每用戶會話計數器......但是你應該給出足夠的顯式上下文:它是否是網站範圍的?持久?每用戶?根據你的回答,有很多Javascript解決方案 –

+0

原因是什麼,你喜歡使用客戶端腳本來實現服務器端邏輯? – feeela

回答

1

我們必須首先弄清楚您到底想要達到的目標。 JavaScript運行在客戶端的瀏覽器中,所以它不能以任何方式在服務器上改變$ _SESSION,而只能通過它自己。如果您希望僅在客戶端保留此計數器,請嘗試setting a cookie via JavaScript。另一種選擇是繼續在服務器會話中存儲計數器並通過AJAX增加計數器。依賴於JavaScript的東西的問題在於它們不可靠,因爲客戶端總是可以選擇禁用JavaScript。也許更好的選擇是嵌入一個iframe,其目標是增加計數器的PHP腳本...

1

如果刷新頁面,javascript將再次加載,並從零開始。你必須通過使用AJAX(結合你的PHP腳本)或使用cookie來使持續計數的數字。在此頁面上,您可以找到一個小教程:http://www.quirksmode.org/js/cookies.html

0

JavaScript在刷新後不記得任何變量。您必須將計數保存在服務器或客戶端計算機上。
如果你希望你的計數被存儲在客戶端,你可以用localStorage的做到這一點:

window.onberforeunload=function(){ 
    localStorage.loads++; 
    return true; 
} 

或者用餅乾:

window.onbeforeunload=function(){ 
    document.cookie="NAME; VALUE; EXPIRE"; 
} 

注意的localStorage只有在新的瀏覽器可與HTML5