php+js实现点赞功能的示例详解


Posted in PHP onAugust 07, 2020

最近在做一个视频网站,需要实现视频的点赞功能,我是结合ajax和数据库实现的,数据库的格式为有四个字段:文章id,赞,踩,ip。因为需要一个ip只能点赞一次,所以需要一个ip字段存储点赞的ip,这样便于判断该ip是否已经点赞过了;

我将点赞和踩的图片做成两个按钮;具体代码如下:

<button style="margin-left:4px" id="vote" rel="<?php echo 文章id;?>">
<img src="点赞图片路径" alt="赞">
<span style="position:absolute;margin-top:6px;margin-left:2px;font-size:20px">
<span style="position:absolute;margin-top:-2px;margin-left:6px;font-size:20px">
<?php if(!$vnum){echo 0;}else{ echo 点赞次数;} ?>
</span>
</button>
<button style="margin-left:38px;margin-top:1px;position:absolute" id="dvote" rel="<?php echo 文章id;?>">
<img src="踩图片路径" alt="踩" >
<span style="position:absolute;margin-top:2px;margin-left:6px;font-size:20px">
<?php if(!$dnum){echo 0;}else{ echo 踩次数;} ?>
</span>
</button>

js程序

<script type="text/javascript">
$(function(){
var id=$("#vote").attr('rel');//获取到文章id;
$("#vote").click(function(){
$.get("传到哪个页面?id="+id,function(r){
alert(r);
window.location.reload();//点赞成功后刷新页面更新新的点赞次数
})
})

$("#dvote").click(function(){
$.get("/news/dvote?id="+id,function(r){
alert(r);
window.location.reload();
})
})
})

</script>

我是用ci框架写,所以在news.php下面的vote方法和dvote方法代表的是赞和踩,具体代码如下

public function vote(){
$id=$_GET['id'];
$ip=getIP();
$getdata=$this->data_model;
$data=$getdata->get_vote_ip($id,$ip);
$msg="";
if(empty($data['ip']) || !$data['ip']){
$data=array('nid'=>$id,'vote'=>1,'ip'=>$ip);
$re=$getdata->insert_vote($data);
$msg.="点赞成功";
}else{
$msg.="一个ip只能操作一次";
}
echo $msg;
}

public function dvote(){
$id=$_GET['id'];
$ip=getIP();
$getdata=$this->data_model;
$data=$getdata->get_vote_ip($id,$ip);

//get_vote_ip($id,$ip),是在模型里面的查询该ip是否已经点赞过,具体代码 如下

//public function get_vote_ip($id,$ip){

// $query=$this->db->query("select * from 表名 where nid='{$id}' and ip='{$ip}'");
// $data=$query->result_array()[0];

// return $data;
// }


$msg="";
if(empty($data['ip']) || !$data['ip']){
$data=array('nid'=>$id,'dvote'=>0,'ip'=>$ip);
$re=$getdata->insert_vote($data);
$msg.="踩成功";
}else{
$msg.="一个ip只能操作一次";
}
echo $msg;
}

点赞可以实现以后,就是需要将点赞数据进行更新,首先需要在数据库查询该篇文章所以的点赞信息

//获取点赞信息
public function get_vote($id){
$query=$this->db->query("select * from tx_vote where nid='{$id}'");
$data=$query->result_array();
return $data;
}

获取信息返回到 控制器里面将赞和踩的信息循环分别存入到数据库中然后分别计算新的数组长度就可以获取赞和踩的次数了,这样的再html页面输出就可以了

到此这篇关于php+js实现点赞功能的示例的文章就介绍到这了,更多相关php+js实现点赞功能内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

PHP 相关文章推荐
php生成缩略图的类代码
Oct 02 PHP
ajax+php打造进度条 readyState各状态
Mar 20 PHP
php二维数组排序方法(array_multisort usort)
Dec 25 PHP
php上传图片存入数据库示例分享
Mar 11 PHP
2个比较经典的PHP加密解密函数分享
Jul 01 PHP
CodeIgniter框架URL路由总结
Sep 03 PHP
迁移PHP版本到PHP7
Feb 06 PHP
php判断输入是否是纯数字,英文,汉字的方法
Mar 05 PHP
php跨服务器访问方法小结
May 12 PHP
PHP中获取文件创建日期、修改日期、访问时间的方法
Nov 05 PHP
php简单计算年龄的方法(周岁与虚岁)
Dec 06 PHP
PHP 实现从数据库导出到.csv文件方法
Jul 06 PHP
PHP基于phpqrcode类生成二维码的方法示例详解
Aug 07 #PHP
php模拟post提交请求调用接口示例解析
Aug 07 #PHP
基于PHP+mysql实现新闻发布系统的开发
Aug 06 #PHP
基于PHP+Mysql简单实现了图书购物车系统的实例详解
Aug 06 #PHP
基于PHP的登录和注册的功能的实现
Aug 06 #PHP
php中try catch捕获异常实例详解
Aug 06 #PHP
PHP日期和时间函数的使用示例详解
Aug 06 #PHP
You might like
PHP HTML代码串截取代码
2008/12/29 PHP
浅谈php安全性需要注意的几点事项
2014/07/17 PHP
php中使用in_array() foreach array_search() 查找数组是否包含时的性能对比
2015/04/14 PHP
javascript instanceof 内部机制探析
2010/10/15 Javascript
jQuery事件绑定on()、bind()与delegate() 方法详解
2015/06/03 Javascript
jquery实现漫天雪花飞舞的圣诞祝福雪花效果代码分享
2015/08/20 Javascript
JS实现自动变换的菜单效果代码
2015/09/09 Javascript
jQuery unbind()方法实例详解
2016/01/19 Javascript
js实现精确到秒的日期选择器完整实例
2016/04/30 Javascript
js实现横向拖拽导航条功能
2017/02/17 Javascript
JS实现电商放大镜效果
2017/08/24 Javascript
nodejs脚本centos开机启动实操方法
2020/03/04 NodeJs
JS面试题中深拷贝的实现讲解
2020/05/07 Javascript
vue解决跨域问题(推荐)
2020/11/10 Javascript
js中延迟加载和预加载的具体使用
2021/01/14 Javascript
[44:26]DOTA2上海特级锦标赛主赛事日 - 2 胜者组第一轮#4EG VS Fnatic第二局
2016/03/03 DOTA
[39:52]2018DOTA2亚洲邀请赛 4.3 突围赛 EG vs Newbee 第一场
2018/04/04 DOTA
Python读取键盘输入的2种方法
2015/06/16 Python
Python下rrdtool模块的基本使用方法
2015/11/13 Python
浅谈Python数据类型判断及列表脚本操作
2016/11/04 Python
基于Python和Scikit-Learn的机器学习探索
2017/10/16 Python
python 中的divmod数字处理函数浅析
2017/10/17 Python
python tkinter控件布局项目实例
2019/11/04 Python
Python 中判断列表是否为空的方法
2019/11/24 Python
解决Pycharm的项目目录突然消失的问题
2020/01/20 Python
解析html5 canvas实现背景鼠标连线动态效果代码
2019/06/17 HTML / CSS
英国最红的高街时尚品牌:Topshop
2016/08/05 全球购物
Lulu Guinness露露·吉尼斯官网:红唇包
2019/02/03 全球购物
平面设计自荐信
2013/10/07 职场文书
电气自动化自荐信
2013/10/10 职场文书
2014年公司迎新年活动方案
2014/02/24 职场文书
活动总结怎么写啊
2014/05/07 职场文书
读书伴我成长演讲稿
2014/05/07 职场文书
广场舞大赛策划方案
2014/05/31 职场文书
文明和谐家庭事迹材料(2016精选版)
2016/02/29 职场文书
SpringBoot2零基础到精通之异常处理与web原生组件注入
2022/03/22 Java/Android