php+js实现点赞功能的示例详解
最近在做一个视频网站,需要实现视频的点赞功能,我是结合ajax和数据库实现的,数据库的格式为有四个字段:文章id,赞,踩,ip。因为需要一个ip只能点赞一次,所以需要一个ip字段存储点赞的ip,这样便于判断该ip是否已经点赞过了;
我将点赞和踩的图片做成两个按钮;具体代码如下:
"> 
"> 
js程序
$(function(){ varid=$("#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(); }) }) }) 
我是用ci框架写,所以在news.php下面的vote方法和dvote方法代表的是赞和踩,具体代码如下
publicfunctionvote(){
$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;
}
publicfunctiondvote(){
$id=$_GET['id'];
$ip=getIP();
$getdata=$this->data_model;
$data=$getdata->get_vote_ip($id,$ip);
//get_vote_ip($id,$ip),是在模型里面的查询该ip是否已经点赞过,具体代码如下
//publicfunctionget_vote_ip($id,$ip){
//$query=$this->db->query("select*from表名wherenid='{$id}'andip='{$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;
}
点赞可以实现以后,就是需要将点赞数据进行更新,首先需要在数据库查询该篇文章所以的点赞信息
//获取点赞信息
publicfunctionget_vote($id){
$query=$this->db->query("select*fromtx_votewherenid='{$id}'");
$data=$query->result_array();
return$data;
}
获取信息返回到控制器里面将赞和踩的信息循环分别存入到数据库中然后分别计算新的数组长度就可以获取赞和踩的次数了,这样的再html页面输出就可以了
到此这篇关于php+js实现点赞功能的示例的文章就介绍到这了,更多相关php+js实现点赞功能内容请搜索毛票票以前的文章或继续浏览下面的相关文章希望大家以后多多支持毛票票!