溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

php實(shí)現(xiàn)點(diǎn)贊的實(shí)例

發(fā)布時(shí)間:2020-11-16 10:28:20 來源:億速云 閱讀:167 作者:小新 欄目:編程語言

這篇文章主要介紹php實(shí)現(xiàn)點(diǎn)贊的實(shí)例,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

php實(shí)現(xiàn)點(diǎn)贊的方法:首先獲取到文章id,代碼為【var id=$("#vote").attr('rel')】;然后點(diǎn)贊成功后刷新頁面更新新的點(diǎn)贊次數(shù),代碼為【window.location.reload()】。

php實(shí)現(xiàn)點(diǎn)贊的方法:

最近在做一個(gè)視頻網(wǎng)站,需要實(shí)現(xiàn)視頻的點(diǎn)贊功能,我是結(jié)合ajax和數(shù)據(jù)庫實(shí)現(xiàn)的,數(shù)據(jù)庫的格式為有四個(gè)字段:文章id,贊,踩,ip。因?yàn)樾枰粋€(gè)ip只能點(diǎn)贊一次,所以需要一個(gè)ip字段存儲(chǔ)點(diǎn)贊的ip,這樣便于判斷該ip是否已經(jīng)點(diǎn)贊過了;

我將點(diǎn)贊和踩的圖片做成兩個(gè)按鈕;具體代碼如下:

<button style="margin-left:4px" id="vote" rel="<?php echo 文章id;?>">
<img src="點(diǎn)贊圖片路徑" 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 點(diǎn)贊次數(shù);} ?>
</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 踩次數(shù);} ?>
</span></button>

js程序

<script type="text/javascript">
$(function(){
var id=$("#vote").attr('rel');//獲取到文章id;
$("#vote").click(function(){
$.get("傳到哪個(gè)頁面?id="+id,function(r){
alert(r);
window.location.reload();//點(diǎn)贊成功后刷新頁面更新新的點(diǎn)贊次數(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.="點(diǎn)贊成功";
}else{
  $msg.="一個(gè)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),是在模型里面的查詢?cè)搃p是否已經(jīng)點(diǎn)贊過,具體代碼 如下
//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.="一個(gè)ip只能操作一次";
}
echo $msg;
}

點(diǎn)贊可以實(shí)現(xiàn)以后,就是需要將點(diǎn)贊數(shù)據(jù)進(jìn)行更新,首先需要在數(shù)據(jù)庫查詢?cè)撈恼滤缘狞c(diǎn)贊信息

//獲取點(diǎn)贊信息
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ù)庫中然后分別計(jì)算新的數(shù)組長度就可以獲取贊和踩的次數(shù)了,這樣的再html頁面輸出就可以了

以上是php實(shí)現(xiàn)點(diǎn)贊的實(shí)例的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

php
AI