文章或者观点说说等点赞功能实现(thinkphp)

前端的代码:

<div class='btm'><a class='zan' id="{$vo.id}" href="javascript:void(0);">赞(<span>{$vo.count}</span>)</a></div>

当然数据的处理用ajax,不过先要引入jquery和jquery.cookie.js,这个就自行百度下载吧。前端会用cookie来限制重复点赞的效果。

js部分:

$(".zan").live('click',function(){
               var Oa=$(this);
               var id=Oa.attr('id');//获取id属性
               var vl=Oa.find("span").text();
                   vl=parseInt(vl)+1;
               if(!$.cookie(id)){
                  $.post('{:U("Index/zan")}',{id:id},function(data){
                     if(data.status==1){
                          alert('点赞+1');//模拟异步数据加1
                            $.cookie(id,id);//改变flag初始值,确保函数只执行一次
                            Oa.find("span").text(vl);//页面元素加1
                     }

                  },'json'); 
                 
               }else{
                   alert('您已经点过赞了!');
               }
               return false;
           })

后端接收数据:IndexController.class.php

public function zan(){
      $data['id']=isset($_POST['id'])?intval(trim($_POST['id'])):0;
      $db=M('article');
      $res = $db->where($data)->setInc('zan');
      if($res){
        $this->ajaxReturn($data,'ok',1);
        exit();
      }else{
        $this->ajaxReturn($data,'fail',0);
        exit();
      }
    }

done!

posted @ 2017-04-24 14:15  TOPHP  阅读(921)  评论(0编辑  收藏  举报