phpcms点赞功能的实现,附代码

我们在用PHPCMS框架帮客户开发网站的时候,有时客户需要实现一篇文章的标题下面,增加一个点赞的功能。点赞后点赞数据加1,同时显示取消点赞按钮;点击取消点赞后,点赞数据减1,同时显示点赞按钮

实现的原理是新建一个包含了当前文章ID和访问者IP的数据表,然后建立一个点赞模型类,最后前台通过ajax调用即可实现。

1、新建一个数据表v9_dianzan

CREATE TABLE v9_dianzan (
   `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
   `newsid` mediumint(8) unsigned NOT NULL '每篇文章的id', 
   `ip` varchar(15) NOT NULL  '当前访客的IP地址',
   PRIMARY KEY (`id`)
 ) ENGINE=MyISAM AUTO_INCREMENT=79 DEFAULT CHARSET=utf8;

2、新建一个点赞模型dianzan_model.class.php,放到文件夹\phpcms\model,具体代码见附件

3、控制器中调用,打开\phpcms\modules\content\index.php,添加如下函数

//添加和获取点赞
 public function dianzan(){
   $this->db = pc_base::load_model('dianzan_model');
   $this->db->dianzan(); 
 }

4、前台调用代码

<a href="javascript:void(0);">
 <span id="upscount"></span>
 <span id="ups">点赞</span>
 <input type="hidden" id="flag" value="0" />
 <script  type="text/javascript" >
 $(function(){ 
 var upscount = $("#upscount");
 var ups = $("#ups");
 var flag = $("#flag");
  
 ups.click(function(){
 dianzan(1);
 })
 dianzan(0);
 function dianzan(status){ 
 $.getJSON("{APP_PATH}index.php?m=content&c=index&a=dianzan",{"id":"{$id}","status":""+ status +"","flag":""+ flag.val() +""}, function(data){
 if(data.flag == 1){
 ups.html("取消点赞");
 flag.val(data.flag);
 }else{
 ups.html("点赞");
 flag.val(data.mark);
 }
 upscount.html(data.count);
 })
 }
  
 })
  
  
 </script>
  
 </a>

最终效果:

phpcms点赞功能的实现,附代码

相关推荐