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 身份证号验证函数
May 07 PHP
php 在文件指定行插入数据的代码
May 08 PHP
phpmyadmin配置文件现在需要绝密的短密码(blowfish_secret)的2种解决方法
May 07 PHP
php遍历删除整个目录及文件的方法
Mar 13 PHP
PHP+Ajax实现验证码的实时验证
Jul 20 PHP
关于PHP中字符串与多进制转换函数的实例代码
Nov 03 PHP
php 中的closure用法详解
Jun 12 PHP
PHP弱类型语言中类型判断操作实例详解
Aug 10 PHP
thinkPHP框架自动填充原理与用法分析
Apr 03 PHP
PHP简单实现正则匹配省市区的方法
Apr 13 PHP
php微信开发之音乐回复功能
Jun 14 PHP
PHP字符串和十六进制如何实现互相转换
Jul 16 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 IDE phpstorm 常用快捷键
2015/05/18 PHP
PHP实现批量修改文件后缀名的方法
2015/07/30 PHP
浅谈php7的重大新特性
2015/10/23 PHP
php使用curl并发减少后端访问时间的方法分析
2016/05/12 PHP
PHP实现的支付宝支付功能示例
2019/03/26 PHP
jQuery在IE下使用未闭合的xml代码创建元素时的Bug介绍
2012/01/10 Javascript
SeaJS入门教程系列之SeaJS介绍(一)
2014/03/03 Javascript
Javascript连接多个数组不用concat来解决
2014/03/24 Javascript
jQuery获取checkbox选中的值
2016/01/28 Javascript
基于Jquery和html5实现炫酷的3D焦点图动画
2016/03/02 Javascript
JS基于clipBoard.js插件实现剪切、复制、粘贴
2016/05/03 Javascript
超实用的JavaScript代码段 附使用方法
2016/05/22 Javascript
深入浅析JavaScript中的Function类型
2016/07/09 Javascript
JS实现一次性弹窗的方法【刷新后不弹出】
2016/12/26 Javascript
Nodejs+angularjs结合multiparty实现多图片上传的示例代码
2017/09/29 NodeJs
Vue.js 中的 v-show 指令及用法详解
2018/11/19 Javascript
vue.js使用v-model实现父子组件间的双向通信示例
2020/02/05 Javascript
js 动态校验开始结束时间的实现代码
2020/05/25 Javascript
vue实现五子棋游戏
2020/05/28 Javascript
vscode 插件开发 + vue的操作方法
2020/06/05 Javascript
[05:53]敌法师的金色冠名ID"BurNIng",是传说,是荣耀
2020/07/11 DOTA
Python 常用string函数详解
2016/05/30 Python
Python中的数学运算操作符使用进阶
2016/06/20 Python
[原创]Python入门教程1. 基本运算【四则运算、变量、math模块等】
2018/10/28 Python
python+mysql实现学生信息查询系统
2019/02/21 Python
python3中类的继承以及self和super的区别详解
2019/06/26 Python
python实现图片九宫格分割
2021/03/07 Python
Python threading模块condition原理及运行流程详解
2020/10/05 Python
Html5如何唤起百度地图App的方法
2019/01/27 HTML / CSS
html5 乒乓球(碰撞检测)实例二
2013/07/25 HTML / CSS
物流毕业生个人的自我评价
2014/02/13 职场文书
信息技术毕业生自荐信范文
2014/03/13 职场文书
语文教研活动总结
2014/07/02 职场文书
开除通知书范本
2015/04/25 职场文书
react中的DOM操作实现
2021/06/30 Javascript
python 远程执行命令的详细代码
2022/02/15 Python