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 相关文章推荐
第十节--抽象方法和抽象类
Nov 16 PHP
如何使用PHP实现javascript的escape和unescape函数
Jun 29 PHP
PHP速成大法
Jan 30 PHP
php判断表是否存在的方法
Jun 18 PHP
PHP实现搜索地理位置及计算两点地理位置间距离的实例
Jan 08 PHP
在PHP语言中使用JSON和将json还原成数组的方法
Jul 19 PHP
phpmailer绑定邮箱的实现方法
Dec 01 PHP
使用php完成常见的文件上传功能(推荐)
Jan 13 PHP
PHP中for循环与foreach的区别
Mar 06 PHP
PHP实现动态获取函数参数的方法示例
Apr 02 PHP
Laravel框架自定义公共函数的引入操作示例
Apr 16 PHP
PHP Web表单生成器案例分析
Jun 02 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
Mysql的常用命令
2006/10/09 PHP
JS中encodeURIComponent函数用php解码的代码
2012/03/01 PHP
PHP多文件上传类实例
2015/03/07 PHP
[原创]PHP实现逐行删除文件右侧空格的方法
2015/12/25 PHP
Smarty变量用法详解
2016/05/11 PHP
FLASH 广告之外的链接
2008/12/16 Javascript
使用dynatrace-ajax跟踪JavaScript的性能
2010/04/12 Javascript
了解jQuery技巧来提高你的代码(个人觉得那个jquery的手册很不错)
2012/02/10 Javascript
jquery高效反选具体实现
2013/05/05 Javascript
微信分享的标题、缩略图、连接及描述设置方法
2014/10/14 Javascript
node.js+express制作网页计算器
2016/01/17 Javascript
JS实现字符串翻转的方法分析
2018/08/31 Javascript
解决Vue2.0 watch对象属性变化监听不到的问题
2018/09/11 Javascript
js中async函数结合promise的小案例浅析
2019/04/14 Javascript
微信小程序合法域名配置方法
2019/05/06 Javascript
vue App.vue中的公共组件改变值触发其他组件或.vue页面监听
2019/05/31 Javascript
node.js中path路径模块的使用方法实例分析
2020/02/13 Javascript
vue实现户籍管理系统
2020/05/29 Javascript
Python连接DB2数据库
2016/08/27 Python
python类的方法属性与方法属性的动态绑定代码详解
2017/12/27 Python
Python实现读取SQLServer数据并插入到MongoDB数据库的方法示例
2018/06/09 Python
TensorFlow卷积神经网络之使用训练好的模型识别猫狗图片
2019/03/14 Python
python pytest进阶之fixture详解
2019/06/27 Python
如何安装2019Pycharm最新版本(详细教程)
2019/09/26 Python
CSS3+JavaScript实现炫酷呼吸效果的示例代码
2020/06/15 HTML / CSS
HTML5 本地存储 LocalStorage详解
2016/06/24 HTML / CSS
美国五金商店:Ace Hardware
2018/03/27 全球购物
西班牙用户之间买卖视频游戏的平台:Wakkap
2020/03/21 全球购物
优秀英语专业毕业生求职信
2013/11/23 职场文书
五分钟演讲稿
2014/04/30 职场文书
公司领导班子对照材料
2014/08/18 职场文书
师德师风个人总结
2015/02/06 职场文书
劳动争议仲裁代理词
2015/05/25 职场文书
标准发言稿结尾
2019/07/18 职场文书
vue 把二维或多维数组转一维数组
2022/04/24 Vue.js
Mybatis-plus配置分页插件返回统一结果集
2022/06/21 Java/Android