php 实现收藏功能的示例代码
2018-09-07 12:40
整理文档,搜刮出一个php 实现收藏功能的示例代码,稍微整理精简一下做下分享。
HTML:
<a class = x id={$photo.id} uid={$Think.session.uid} status = {$collect_pic} href = javascript:void(0);> <if condition = $collect_num gt 0> <span>取消收藏</span> <else/><span>收藏</span></if></a>
Js:
//点击收藏,实现已收藏 $(.x).on(click,function(){ var Oa=$(this); var id=Oa.attr(id);//获取图片id属性 var uid = Oa.attr(uid);//获取用户id var status = Oa.attr(status); //获取收藏状态 1收藏,0取消收藏 $.post(url,{id:id,uid:uid,status:status},function(msg){ if(msg.status==1){ Oa.find(span).text(取消收藏); Oa.attr(status,1); }else{ Oa.find(span).text(收藏); Oa.attr(status,0); } },json) })
PHP:
//判断用户是否已收藏该图片 $data[uid] = $_SESSION[uid]; $data[pid] = $pid; $collect_pic = M(collect)->where($data)->getfield(status); $this->collect_num = $collect_num; $this->collect_pic = $collect_pic; //收藏成功 public function cang(){ $data[pid] = isset($_POST[id])?intval(trim($_POST[id])):0; $data[uid] = $_SESSION[uid]; //默认o收藏 1取消收藏 $status = isset($_POST[status])?intval(trim($_POST[status])):0; $db = M(collect); if($status == 0){ //数据组装,忽略 if(M(collect)->data($collect)->add()){ $msg[info] = ok; $msg[status] = 1; $this->ajaxreturn($msg); exit; }else{ $msg[info] = fail; $msg[status] = 1; $this->ajaxreturn($msg); } }else{ //取消收藏 if($db->where($data)->delete()){ $msg[info] = ok; $msg[status] = 0; $this->ajaxreturn($msg); exit; }else{ $msg[info] = fail; $msg[status] = 0; $this->ajaxreturn($msg); } }
思路:基本没什么难度,注意细节即可。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。