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中的串行化变量和序列化对象
Sep 05 PHP
1.PHP简介
Oct 09 PHP
PHP4实际应用经验篇(2)
Oct 09 PHP
PHP Stream_*系列函数
Aug 01 PHP
CURL状态码列表(详细)
Jun 27 PHP
PHP学习笔记(一) 简单了解PHP
Aug 04 PHP
php延迟静态绑定实例分析
Feb 08 PHP
PHP函数引用返回的实例详解
Sep 11 PHP
php实现36进制与10进制转换功能示例
Jan 10 PHP
PHP清除缓存的几种方法总结
Sep 12 PHP
PHP PDOStatement::rowCount讲解
Feb 01 PHP
为你的 Laravel 验证器加上多验证场景的实现
Apr 07 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 飞信好友免费短信API接口开源版
2010/07/22 PHP
php实现通用的从数据库表读取数据到数组的函数实例
2015/03/21 PHP
浅谈php的TS和NTS的区别
2019/03/13 PHP
jQuery html()等方法介绍
2009/11/18 Javascript
JS判断是否为数字,是否为整数,是否为浮点数的代码
2010/04/24 Javascript
jquery实现固定顶部导航效果(仿蘑菇街)
2013/03/21 Javascript
JS中showModalDialog 的使用解析
2013/04/17 Javascript
jquery控制display属性为none或block
2014/03/31 Javascript
javascript弹出页面回传值的方法
2015/01/28 Javascript
关于vuex的学习实践笔记
2017/04/05 Javascript
Bootstrap 表单验证formValidation 实现表单动态验证功能
2017/05/17 Javascript
vue跨域解决方法
2017/10/15 Javascript
webpack分离css单独打包的方法
2018/06/12 Javascript
Node.js Koa2使用JWT进行鉴权的方法示例
2018/08/17 Javascript
一篇文章介绍redux、react-redux、redux-saga总结
2019/05/23 Javascript
使用easyui从servlet传递json数据到前端页面的两种方法
2019/09/05 Javascript
vue+vant实现购物车全选和反选功能
2020/11/17 Vue.js
[02:24]DOTA2亚洲邀请赛 NAVI战队出场宣传片
2015/02/07 DOTA
[54:41]2018DOTA2亚洲邀请赛3月30日 小组赛B组 VGJ.T VS paiN
2018/03/31 DOTA
Python中操作文件之write()方法的使用教程
2015/05/25 Python
详解Python函数可变参数定义及其参数传递方式
2017/08/02 Python
Django实现简单分页功能的方法详解
2017/12/05 Python
python数字图像处理实现直方图与均衡化
2018/05/04 Python
对numpy中的数组条件筛选功能详解
2018/07/02 Python
Python3实现腾讯云OCR识别
2018/11/27 Python
python导入pandas具体步骤方法
2019/06/23 Python
用pyqt5 给按钮设置图标和css样式的方法
2019/06/24 Python
Python Pickle 实现在同一个文件中序列化多个对象
2019/12/30 Python
属性与 @property 方法让你的python更高效
2020/09/21 Python
Python使用Turtle模块绘制国旗的方法示例
2021/02/28 Python
美国在线珠宝商店:SZUL
2017/02/11 全球购物
应届生财务管理求职信
2013/11/06 职场文书
校园十大歌手策划书
2014/02/01 职场文书
安全演讲稿开场白
2014/08/25 职场文书
2014年村计划生育工作总结
2014/11/14 职场文书
小学感恩主题班会
2015/08/12 职场文书