最近想在emlog也实现个文章收藏功能 然后百度阅读了N篇文章 最后找到了个教程还算完善的 本文转载非原创
下面直接进入教程
首先创建数据库表
js代码
代码语言:javascript复制<script>
$(function(){
$('#sc').click(function(){
var gid=$(this).attr('data-id');
var data={
gid:gid
};
$.ajax({
url:"{:U('Goods/collect_add')}",
type:"post",
data:data,
success:function(data){
// window.clearInterval(timer);
if(data==1){
window.location.href="{:U('Public/login')}"; //登陆界面
}else {
if(data==2){
$('#sc').css({
'background-color':'white',
'color':'#00ccff',
});
$('#sc_words').html(
'收藏'
);
}else if(data==3){
$('#sc').css({
'background-color':'#00ccff',
'color':'white',
});
$('#sc_words').html(
'已收藏'
);
}else{
alert(data);
}
}
},
error:function(){
alert('请求失败');
}
});
});
})
</script>
html代码
代码语言:javascript复制<div id="sc" data-id="{$detail.id}" class="in_right">
<p id="sc_words">收藏</p>
</div>
php处理
代码语言:javascript复制// 商品收藏 1 代表未登录 2代表取消收藏 3 代表 收藏成功
public function collect_add(){
if(empty(session('uid'))){
echo '1';
}else {
$collect=M('collect');
$gid=I('post.gid');
//先确定是否已收藏
$map['gid']=$gid;
$map['uid']=session('uid');
$data=$collect->where($map)->find();
if($data){
if($data['status']==1){
$collect->where('id='.$data['id'])->setField('status',0);
echo '2';
}else{
$collect->where('id='.$data['id'])->setField('status',1);
echo '3';
}
}else{
if($collect->create()){
$collect->gid=$gid;
$collect->create_time=get_date();
$collect->uid=session('uid');
$collect->status=1;
$collect->add();
echo '3';
}else{
echo '服务器出错,请重试!';
}
}
}
}