2011-12-14 60 views
1

我嘗試執行以下代碼上:保持點擊次數的記錄頁面上的外部鏈接或內部鏈接

<a href = "http://www.google.com"/ id="external">go to google</a> 
    <span id="num1"></span>// to show the number of clicks so far. 
    <a href = "index.php" id="internal">go to home</a> 
    <span id="num2"></span>>// to show the number of clicks so far. 


<script> 
    $(document).ready(function() { 
    var count1=0; 
    var count2=0; 
    $("#external").click(function(){ 
     count1++; 

    }); 
$("#num1").html(count1); 
    $("#internal").click(function(){ 
     count2++ 
    }); 
    $("#num2").html(count2); 

    }); 

</script> 

我不知道我做了什麼上面是正確的目的跟蹤每個鏈接上的點擊次數,問題是再次加載頁面時,count變量將被重置爲0,我想知道是否需要將count變量插入數據庫中,還是有更高效如何做到這一點,任何人都可以幫助我,任何幫助將不勝感激!

+0

必須保存在某個地方,目前您的存儲在用戶數鏈接瀏覽器。 – 2011-12-14 19:19:04

回答

1

您可以HI-插孔click事件的鏈接,停止正常流量,發送一個Ajax請求你的服務器登錄點擊,然後將用戶重定向到所請求的URL:

$('#external, #internal').on('click', function (event) { 
    var url = $(this).attr('href'); 
    event.preventDefault(); 
    $.get('path/to/server-side.php', { 'vote' : url }, function (serverResponse) { 
     window.location = url; 
    }); 
}); 

請注意,.on()是jQuery 1.7中的新增功能,在這種情況下與使用.bind()相同。

您還可以選擇所有鏈接:

$('a')... 

或者你可以添加一個類要登錄

$('.log-this-link')... 
1

每次頁面加載時,Javascript都會「重置」。爲了跟蹤點擊次數,您必須將數據存儲在數據庫中。

+0

你能告訴我如何在PHP?謝謝!我假設使用「mysql_query(」insert into count1 values('count1'),但javascript變量count1不能在數據庫查詢中。 – smith 2011-12-14 19:27:06