您的位置:首页 > 其它

博文详情页面点赞功能添加并完善

2018-01-06 22:39 253 查看
1.博文点赞功能添加:

<span class="like">
<a href="javascript:void(0)" id="ding" data-action="ding" data-id="{$artInfo.art_id}" title="我赞" class="favorite done"><i class="fa fa-thumbs-up"></i>赞 <i class="count">{$artInfo.click_num}</i></a>
</span>


2.通过Jquery ajax的get方式,响应文章id到后台指定方法下接收

$('#ding').click(function(){
var url="{:U('Content/clickNum')}";
var _this=$(this);
//接收文章id
var artId=_this.attr('data-id');
$.get(url,{'art_id':artId},function(data){
if(data.status==1){
//写入数据库响应过来的数值
$('.count').text(data.num);
//修改背景色,提示不能再做点赞动作
_this.css({background:'#878787'});
}else{
alert(data.msg);
}},'json')
})


3.后台接收ID后进行阅读量自加的动作并取得数据库阅读量的值响应返回给前端,注意限制同一访问者对该文章无限的点赞

//内容页点赞方法
public function clickNum(){
$artId=I('get.art_id');

//获取访问用户IP
$ip = get_client_ip();
$data=array('status'=>0,'msg'=>'','num'=>0);

//判断用户是否已点击过
$is_click=M('clicknum')->where(array('ip'=>$ip,'art_id'=>$artId))->find();

if($is_click){
$data['msg']="您已经点过赞了!";
//如果已经点赞过了则直接return,程序终止
$this->ajaxReturn($data);
}

//点赞数量+1
$result=M('article')->where("art_id='$artId'")->setInc('click_num');
//将点赞用户记录记录到数据库
M('clicknum')->add(array('ip'=>$ip,'art_id'=>$artId));

if($result){
$data['status']=1;
//获取数据库click_num字段的值
$data['num']=M('article')->where("art_id='$artId'")->getField('click_num');

}else{
$data['msg']='点赞失败!';
}
//tp下自定义的ajax返回
$this->ajaxReturn($data);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息