php+js實現(xiàn)點贊功能的示例詳解
最近在做一個視頻網(wǎng)站,需要實現(xiàn)視頻的點贊功能,我是結(jié)合ajax和數(shù)據(jù)庫實現(xiàn)的,數(shù)據(jù)庫的格式為有四個字段:文章id,贊,踩,ip。因為需要一個ip只能點贊一次,所以需要一個ip字段存儲點贊的ip,這樣便于判斷該ip是否已經(jīng)點贊過了;
我將點贊和踩的圖片做成兩個按鈕;具體代碼如下:
<button rel='<?php echo 文章id;?>'><img src='http://www.aoyou183.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 點贊次數(shù);} ?></span></button>
<button rel='<?php echo 文章id;?>'><img src='http://www.aoyou183.cn/bcjs/踩圖片路徑' alt='踩' ><span style='position:absolute;margin-top:2px;margin-left:6px;font-size:20px'><?php if(!$dnum){echo 0;}else{ echo 踩次數(shù);} ?></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();//點贊成功后刷新頁面更新新的點贊次數(shù)})})$('#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是否已經(jīng)點贊過,具體代碼 如下//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;}
點贊可以實現(xiàn)以后,就是需要將點贊數(shù)據(jù)進行更新,首先需要在數(shù)據(jù)庫查詢該篇文章所以的點贊信息
//獲取點贊信息public function get_vote($id){$query=$this->db->query('select * from tx_vote where nid=’{$id}’');$data=$query->result_array();return $data;}
獲取信息返回到 控制器里面將贊和踩的信息循環(huán)分別存入到數(shù)據(jù)庫中然后分別計算新的數(shù)組長度就可以獲取贊和踩的次數(shù)了,這樣的再html頁面輸出就可以了
到此這篇關(guān)于php+js實現(xiàn)點贊功能的示例的文章就介紹到這了,更多相關(guān)php+js實現(xiàn)點贊功能內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
1. jsp實現(xiàn)textarea中的文字保存換行空格存到數(shù)據(jù)庫的方法2. ASP實現(xiàn)加法驗證碼3. asp知識整理筆記4(問答模式)4. 詳解idea中web.xml默認版本問題解決5. jsp EL表達式詳解6. IntelliJ IDEA 統(tǒng)一設(shè)置編碼為utf-8編碼的實現(xiàn)7. JSP頁面實現(xiàn)驗證碼校驗功能8. java 優(yōu)雅關(guān)閉線程池的方案9. IntelliJ IDEA 2020最新激活碼(親測有效,可激活至 2089 年)10. 解決ajax的delete、put方法接收不到參數(shù)的問題方法
