前端的代码:
<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!