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 相关文章推荐
对Session和Cookie的区分与解释
Mar 16 PHP
有关JSON以及JSON在PHP中的应用
Apr 09 PHP
深入PHP FTP类的详解
Jun 13 PHP
解析如何通过PHP函数获取当前运行的环境 来进行判断执行逻辑(小技巧)
Jun 25 PHP
php检测数组长度函数sizeof与count用法
Nov 17 PHP
ThinkPHP中redirect用法分析
Dec 05 PHP
php+xml实现在线英文词典之添加词条的方法
Jan 23 PHP
php检查是否是ajax请求的方法
Apr 16 PHP
php中preg_match的isU代表什么意思
Oct 01 PHP
详解js异步文件加载器
Jan 24 PHP
ThinkPHP框架里隐藏index.php
Apr 12 PHP
PHP正则表达式笔记与实例详解
May 09 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中socket的用法详解
2014/10/24 PHP
php内嵌函数用法实例
2015/03/20 PHP
PHP实现简单汉字验证码
2015/07/28 PHP
PHP会话处理的10个函数
2015/08/11 PHP
phpStudy配置多站点多域名方法及遇到的403错误解决方法
2017/10/19 PHP
JQuery对checkbox操作 (循环获取)
2011/05/20 Javascript
基于Jquery实现的一个图片滚动切换
2012/06/21 Javascript
javascript游戏开发之《三国志曹操传》零部件开发(四)用地图块拼成大地图
2013/01/23 Javascript
setInterval计时器不准的问题解决方法
2014/05/08 Javascript
ECMAScript6中Set/WeakSet详解
2015/06/12 Javascript
jQuery使用ajax方法解析返回的json数据功能示例
2017/01/10 Javascript
使用ionic在首页新闻中应用到的跑马灯效果的实现方法
2017/02/13 Javascript
使用AngularJS对表单提交内容进行验证的操作方法
2017/07/12 Javascript
Webpack性能优化 DLL 用法详解
2017/08/10 Javascript
基于VUE.JS的移动端框架Mint UI的使用
2017/10/11 Javascript
React数据传递之组件内部通信的方法
2017/12/31 Javascript
webstorm中vue语法的支持详解
2018/05/09 Javascript
JS实现的tab页切换效果完整示例
2018/12/18 Javascript
微信小程序实现单个或多个倒计时功能
2020/11/01 Javascript
python生成随机密码或随机字符串的方法
2015/07/03 Python
python常用函数详解
2016/09/13 Python
pandas实现选取特定索引的行
2018/04/20 Python
python下解压缩zip文件并删除文件的实例
2018/04/24 Python
对python程序内存泄漏调试的记录
2018/06/11 Python
简单了解python高阶函数map/reduce
2019/06/28 Python
Django stark组件使用及原理详解
2019/08/22 Python
Python命名空间及作用域原理实例解析
2020/08/12 Python
pandas统计重复值次数的方法实现
2021/02/20 Python
HTML5中meta属性的使用方法
2016/02/29 HTML / CSS
FLOS美国官网:意大利高级照明工艺的传奇
2018/08/07 全球购物
临床医师专业个人自我评价
2014/01/08 职场文书
国贸专业的职业规划范文
2014/01/23 职场文书
就业协议书范本
2014/04/11 职场文书
保密协议书范本
2014/04/22 职场文书
幼儿园大班开学寄语(2015秋季)
2015/05/27 职场文书
小学三年级班主任工作经验交流材料
2015/11/02 职场文书