记录页面上外部链接或内部链接的点击次数

时间:2011-12-14 19:15:37

标签: php jquery

我尝试实现以下代码:

  <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,I想知道我是否需要将count变量插入到数据库中,或者是否有更有效的方法来做到这一点,任何人都可以帮助我,任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:1)

每次加载页面时,Javascript都会“重置”。为了跟踪您必须将数据存储在数据库中的点击次数。

答案 1 :(得分:1)

您可以为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')...