在cookie中存储jQuery点击计数,然后回显它。

时间:2015-12-10 15:41:19

标签: php jquery cookies

我正在尝试使用jQuery来计算点击次数,将它们存储在Cookie中,然后将它们回送出来。

我在网上发现了一些允许我这样做的代码,但我似乎无法使其工作。它正在创建cookie文件并在其中存储“0”,但在点击链接时不会更新。关于这段代码出错的任何指导都会很棒。 :

clickCount.js

jQuery(function(){
  $("a").click(function{
    var cookiename = 'linkcounter';
    if($.cookie(cookiename) == null){
       $.cookie(cookiename, 0);
    }
    $.cookie(cookiename, $.cookie(cookiename)+1);
  });
});

的index.php

<?php

session_start();

$counter_file = 'counter';
if(!file_exists($counter_file)){
  file_put_contents($counter_file, 0);
}

$counts = (int)file_get_contents($counter_file);
file_put_contents($counter_file, $counts++);
// you can use $counts if you want to display it on the page.

?><!DOCTYPE html>
<html>
  <head>
    <title>Link Click Counter Test</title>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
    <script type="text/javascript" src="jquery.cookie.js"></script>
    <script type="text/javascript" src="countdetect.js"></script>
  </head>
  <body>
    <a href="http://www.google.com/"></a><br />
    <a href="<?php echo $_SERVER['PHP_SELF']; ?>"></a><br />
    Link clicks: <?php echo $counts; ?>
  </body>
</html>

1 个答案:

答案 0 :(得分:1)

在PHP代码中,您不是将点击计数存储到cookie中,而是存储到文件中。

您必须通过从JavaScript向服务器发出AJAX请求来更新计数器文件,或者实际在PHP文件中编写cookie:

scanf

确保在JavaScript和PHP中使用相同的Cookie名称。