wordpress CMS主题 微信
Home > PHP开发 > thinkphp生成前台静态页面后,如何更新前台文章点击数?

thinkphp生成前台静态页面后,如何更新前台文章点击数?

高时银博客 PHP开发 点击: 414 次 0 1

精通thinkphp或php的同仁都知道,动态统计和获取文章点击数是非常简单的,只需要每次进入页面时就给文章点击数添加1,然后再从数据库调出这个点击数就可以 了。但是,如果通过thinkphp把前台动态页面生成静态文件后,这些静态页面的内容就是死的,你进多少次文章页面,点击数始终是当初生成静态时的那个数。那么,如果想在静态页面上也能随时更新这个文章点击数,该怎么办呢?下面,高时银博客介绍一种方法——ajax调用。

thinkphp生成前台静态页面后,如何更新前台文章点击数?

第一步:给点击数添加 class 或 id ,如:

<li>
<span>点击:</span>
<span class="post_click">{$posts.post_click}</span>
</li>

这里是 class="post_click",这个在使用ajax时会用用。

第二步:在文章页面引用jquery,代码如下:

<script type="text/javascript" src="/Public/js/jquery_min_1_7.js"></script>

这里是引用了jquery1.7版,其它版本也可以。这里引用jquery,是因为下面我使用的是 jquery 调用ajax。如果你是纯JS调用ajax,就不需要引用jquery了。

第三步:ajax传递数据:

$(function(){
//浏览文章时,文章点击统计
var title = $("h1").text(); //获取文章标题
$.ajax({
url:"/s/post_num.php",
type:"POST",
data:{title:title},
success:function(response){
$(".post_click").text(response); //将php返回的数据添加到 页面中
}
});
})

我这里是先通过Jquery获取到文章的标题,然后再把标题数据以 post 方式传递到 /s/post_num.php 的文件中,这个post_num.php文件就是文章点击统计处理文件。

第四步:处理文章点击统计和返回数据给 ajax :

在thinkphp网站根目录下创建一个名为 s 的文件夹,在这个文件夹下创建一个 post_num.php文件,然后 文章点击统计数的更新代码和获取点击数的代码,如下:

//文章点击统计

include "../../_data/data.php"; //数据库信息,服务器地址、数据库名、用户名、密码

$title = isset($_POST["title"])?$_POST["title"]:""; //接收 ajax传递过来的标题数据

//连接数据库
$conn = @mysql_connect(DATA_URL,DATA_USER,DATA_PASS) or die("数据库连接失败");
@mysql_select_db(DATA_ADMIN) or die("选择数据库失败".mysql_error());
@mysql_query("set names utf8");

//记录关键词查询次数
$result = mysql_query("select * from post where post_title='".$title."'");

if($res = mysql_fetch_array($result)){
$count = $res["post_click"]; //获取文章原点击率
$id = $res["post_id"];

$cookie_name = "post_name".$id; //cookie名
$cookie_val = "post_name".$id; //cookie值
if(empty($_COOKIE[$cookie_name])){//如果cookie名不存在,就添加一次点击
setcookie($cookie_name,$cookie_val,time()+1800);
mysql_query("update post set post_click=(post_click+1) where post_id=$id"); //原点击率 + 1
}
}

mysql_free_result($result);
mysql_close($conn);

echo $count; //返回统计数

当然,我这里对每个用户对文章的点击做了处理,以cookie来记录用户是否浏览过这篇文章,如果浏览过这篇文章,则在1800秒内再次浏览这篇文章时不作统计累加,当然,如果想让同一用户在一天之内不重复累加,可以将cookie过期时间修改成1天,即 60*60*24 ,这就要看自己的需求了。


文章作者:高时银博客
本文地址:http://wanlimm.com/77201608195137.html
版权所有 © 转载时必须以链接形式注明作者和原始出处!

目前还没有评论。赶快来坐沙发吧。

发表评论