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 相关文章推荐
MySQL中create table语句的基本语法是
Jan 15 PHP
15种PHP Encoder的比较
Mar 06 PHP
fleaphp crud操作之find函数的使用方法
Apr 23 PHP
PHP的可变变量名的使用方法分享
Feb 05 PHP
Zend Framework 2.0事件管理器(The EventManager)入门教程
Aug 11 PHP
PHP实现取得HTTP请求的原文
Aug 18 PHP
php中常量DIRECTORY_SEPARATOR用法深入分析
Nov 14 PHP
PHP+Ajax 检测网络是否正常实例详解
Dec 16 PHP
PHP结合Vue实现滚动底部加载效果
Dec 17 PHP
PHP封装cURL工具类与应用示例
Jul 01 PHP
浅谈Laravel POST,PUT,PATCH 路由的区别
Oct 15 PHP
php的无刷新操作实现方法分析
Feb 28 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 数组排序方法总结 推荐收藏
2010/06/30 PHP
php操作SVN版本服务器类代码
2011/11/27 PHP
typecho插件编写教程(四):插件挂载
2015/05/28 PHP
JavaScript和CSS通过expression实现Table居中显示
2013/06/28 Javascript
js判断两个日期是否相等的方法
2013/09/10 Javascript
一段非常简单的js判断浏览器的内核
2014/08/17 Javascript
js+css实现select的美化效果
2016/03/24 Javascript
json传值以及ajax接收详解
2016/05/24 Javascript
jquery Easyui Datagrid实现批量操作(编辑,删除,添加)
2017/02/20 Javascript
浅谈JS封闭函数、闭包、内置对象
2017/07/18 Javascript
修改 bootstrap table 默认detailRow样式的实例代码
2017/07/21 Javascript
使用JS实现图片轮播的实例(前后首尾相接)
2017/09/21 Javascript
简单谈谈CommonsChunkPlugin抽取公共模块
2017/12/31 Javascript
使用Node.js实现一个多人游戏服务器引擎
2019/03/13 Javascript
微信小程序开发之获取用户手机号码(php接口解密)
2020/05/17 Javascript
axios解决高并发的方法:axios.all()与axios.spread()的操作
2020/11/09 Javascript
[33:09]完美世界DOTA2联赛循环赛 Forest vs DM BO2第二场 10.29
2020/10/29 DOTA
对Python中数组的几种使用方法总结
2018/06/28 Python
python匹配两个短语之间的字符实例
2018/12/25 Python
对python_discover方法遍历所有执行的用例详解
2019/02/13 Python
Python中如何使用if语句处理列表实例代码
2019/02/24 Python
python GUI库图形界面开发之PyQt5计数器控件QSpinBox详细使用方法与实例
2020/02/28 Python
详解Python模块化编程与装饰器
2021/01/16 Python
CSS3 实现童年的纸飞机
2019/05/05 HTML / CSS
CSS3 真的会替代 SCSS 吗
2021/03/09 HTML / CSS
简单的HTML5初步入门教程
2015/09/29 HTML / CSS
奥地利智能家居和智能生活网上商店:tink.at
2019/10/07 全球购物
介绍一下Cookie和Session及他们之间的区别
2012/11/20 面试题
营业员个人总结的自我评价
2013/10/25 职场文书
《桥》教学反思
2014/04/09 职场文书
技校毕业生自荐信
2014/06/03 职场文书
运动会运动员赞词
2015/07/22 职场文书
爱国主义主题班会
2015/08/14 职场文书
创业计划书之零食店(进口)
2019/09/24 职场文书
用Python将库打包发布到pypi
2021/04/13 Python
MySQL的存储过程和相关函数
2022/04/26 MySQL