PHPCMS V9多功能点赞功能(jQuery+PHP)

一,PHPCMS V9点赞功能
@PHPCMS的心情功能可以修改为点赞功能,蓝文已经实现,效果杠杠滴,如下截图:
点赞

@当然还可以自定义方案:
@思路:前台传id(文章ID或者其他ID)和点击事件的status值,点赞和取消赞都传status=1,默认传status=0,每刷新一次页面都与后台进行交互。

@建表:取表名为ge_like,ge_为系统表前缀,修改为你自己的表前缀。
新建三个字段:自增id,通用nid和用户的ip,SQL语句如下:
CREATE TABLE IF NOT EXISTS `ge_like` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`nid` int(10) COMMENT '通用id',
`status` tinyint(1) unsigned NOT NULL DEFAULT '0',
`ip` char(20) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

@在\phpcms\phpcms\model新建模型like_model.class.php,代码如下:
<?php
defined('IN_PHPCMS') or exit('No permission resources.');
pc_base::load_sys_class('model', '', 0);
class like_model extends model {
public function __construct() {
$this->db_config = pc_base::load_config('database'); //加载数据库
$this->db_setting = 'default';
$this->table_name = 'like'; // 指向like表
parent::__construct();
}
}
?>

@在\phpcms\modules\下建一个like文件夹,里面加入index.php文件,代码如下:
<?php
defined('IN_PHPCMS') or exit('No permission resources.');
class index {
//通用点赞功能
function like() {
$json = array();
pc_base::load_app_func('global');

$ip = ip(); //获取ip
$nid = $_POST['id']; //获取通用id
$status = $_POST['status']; //获取状态值 默认不点赞和刷新页面都为零
$userinfo = array();
$userinfo['nid'] = $_POST['id'];
$userinfo['ip'] = $ip;
$userinfo['status'] = $status;

$this->like_db = pc_base::load_model('like_model'); //加载模型
$info = $this->like_db->select($where=" nid = '$nid' AND ip = '$ip' ",$data = '*', $sql); //查询数据库
$num = count($info); //$num>0,表示此ip已点过赞

if ( $status == 1 && $num >0) {
$this->like_db->delete($where=" nid = '$nid' AND ip = '$ip' "); //删除数据,取消点赞
$json['flag'] = 0;
} elseif ($status == 1 && $num == 0) {
$this->like_db->insert($userinfo, array('nid'=>'$nid')); //插入数据, 正常点赞
$json['flag'] = 1;
}

if ( $status == 0 && $num >0) { //刷新页面时的判断
$json['flag'] = 1;
} elseif ($status == 0 && $num == 0) {
$json['flag'] = 0;
}

//所有IP点赞的次数
$more = $this->like_db->select($where=" status = 1 ", $data = '*', $sql);
$total = sizeof($more);
$json['count'] = $total;
echo json_encode($json);
}
}

@前台调用方法:

HTML代码示例如下:
<div class="content_sc_dz" style="display: inline-block;">
<div class="content_dz" style="float:none;" id="likebutton" data="{$catid}">
<span class="btn btn_red btn_large" style="border-radius: 5px;">
<font id="n1" name="n" onclick="vote(1)">
<i class="fa fa-thumbs-up"></i> 赞(<span id="likenum">1</span>)
</font>
</span>
</div>
</div>

jQuery(要先引入jQuery库)代码示例如下:
<script type="text/javascript">
$(function(){
$("#likebutton").click(function(){
var love = $(this);
var cid = love.attr("data"); //分类id
$.ajax({
type:"POST",
url:"{APP_PATH}index.php?m=like&c=index&a=like",
data:"id="+cid+"&status=1",
cache:false, //不缓存此页面
success:function(data){
var res = $.parseJSON(data);
$("#likenum").html(res.count);
}
});
return false;
});
});
</script>

此处参考文章:

更多阅读:

郑重声明:

1 本资源来源于互联网,资源的版权归资源原作者所持有,受《中华人民共和国著作权法》等相关法律保护。

2 由于无法和原作者取得联系,所以上传的部分资源无法先通过原作者的同意就分享给大家了,如本资源侵犯了您(原作者)的权益,请联系我们(微信号 xiaohaimei1989),我们会立马删除您的资源,并向您表达诚挚的歉意!

3 本站是一个公益型网站,分享资源的目的在于传播知识,分享知识,收取一点点打赏的辛苦费是用于网站的日常运营开支,并非用于商业用途。

4 本站资源只提供学习和参考研究使用,使用过后请在第一时间内删除。本站不承担资源被单位或个人商用带来的法律责任。

2条评论

发表评论