发布网友 发布时间:2022-04-06 01:55
共2个回答
懂视网 时间:2022-04-06 06:17
php实现收藏功能的方法:首先创建前台代码,实现登录界面;然后通过if语句实现收藏功能;最后在PHP后台中实现收藏的处理功能即可。
推荐:《PHP视频教程》
php实现收藏功能
这是资料库表
话不多说上代码
前台
<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部分
<div id="sc" data-id="{$detail.id}" class="in_right"> <p id="sc_words">收藏</p> </div>
php后台处理
// 商品收藏 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 '伺服器出錯,請重試!'; } } } }
热心网友 时间:2022-04-06 03:25
嗯嗯,Ajax如果用原生的javascript写的话,代码太多了,还需要考下兼容,可以直接引入一个jQuery的库,然后直接调用jQuery的$.get(),$.post(),$.ajax()方法就行,一般出入URL,和参数就行