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

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);
    }

你可能感兴趣的:(框架,tp框架,功能完善)