整理文档,搜刮出一个php 实现收藏功能的示例代码,稍微整理精简一下做下分享。
HTML:
1
2
3
4
|
< 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:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
//点击收藏,实现已收藏 $( '.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:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
//判断用户是否已收藏该图片 $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 ); } } |
思路:基本没什么难度,注意细节即可。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。
原文链接:http://www.cnblogs.com/zhongshenggen/p/6293774.html