php+js實現點贊功能的示例詳解
最近在做一個視頻網站,需要實現視頻的點贊功能,我是結合ajax和數據庫實現的,數據庫的格式為有四個字段:文章id,贊,踩,ip。因為需要一個ip只能點贊一次,所以需要一個ip字段存儲點贊的ip,這樣便于判斷該ip是否已經點贊過了;
我將點贊和踩的圖片做成兩個按鈕;具體代碼如下:
<button rel='<?php echo 文章id;?>'><img src='http://www.cgvv.com.cn/bcjs/點贊圖片路徑' 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 rel='<?php echo 文章id;?>'><img src='http://www.cgvv.com.cn/bcjs/踩圖片路徑' 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實現點贊功能內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!
相關文章:
