您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關php+js要如何實現點贊功能的內容。小編覺得挺實用的,因此分享給大家做個參考。一起跟隨小編過來看看吧。
最近在做一個視頻網站,需要實現視頻的點贊功能,我是結合ajax和數據庫實現的,數據庫的格式為有四個字段:文章id,贊,踩,ip。因為需要一個ip只能點贊一次,所以需要一個ip字段存儲點贊的ip,這樣便于判斷該ip是否已經點贊過了;
我將點贊和踩的圖片做成兩個按鈕;具體代碼如下:
<button id="vote" rel="<?php echo 文章id;?>"> <img src="點贊圖片路徑" alt="贊"> <span > <span > <?php if(!$vnum){echo 0;}else{ echo 點贊次數;} ?> </span> </button>
<button id="dvote" rel="<?php echo 文章id;?>"> <img src="踩圖片路徑" alt="踩" > <span > <?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要如何實現點贊功能就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。