整理文档,搜刮出一个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