当前位置:首页 > PHP教程 > php高级应用 > 列表

学习php+mysql+ajax 局部刷新点赞/取消点赞功能

发布:smiling 来源: PHP粉丝网  添加日期:2022-07-22 09:06:27 浏览: 评论:0 

记录每个赞的点赞用户,以及对赞的数量统计

首先判断用户是否点赞。根据是否点赞,载入不同的html,调用不同的方法

已点赞

如果已点赞,显示已点赞的html,进行取消点赞操作

未点赞

如果未点赞,显示未点赞的html,进行点赞操作

对于不同操作,对数据库进行增加或减少操作。同时对于不同用户的点赞,进行增加记录或删除记录操作。通过控制不同按钮的背景,来显示不同的效果。通过记录不同用户的用户id和赞的id之间的关系,进行不同点赞的限制。

效果演示

当用户id为1时,进行点赞,点赞数加1

学习php+mysql+ajax 局部刷新点赞/取消点赞功能

更改用户id,当id为2时,用户1的用户已进行了点赞,点赞数在用户1点赞基础上增加1

学习php+mysql+ajax 局部刷新点赞/取消点赞功能

数据库

数据库,分为两个数据表。一个进行对点赞数的统计,一个进行不同用户的点赞记录。

两个数据表的详细信息

在这里插入图片描述

连接数据库

  1. $con = new mysqli('localhost','root','','test'); 
  2.  
  3.     if (!$con
  4.  
  5.     { 
  6.  
  7.      die('连接数据库失败,失败原因:' . mysqli_error()); 
  8.  
  9.     }else { 
  10.  
  11.      // echo "连接成功"; 
  12.  
  13.     } 

对用户是否点赞进行判断(操作页面)

对数据库的信息进行提取

  1. //假设用户编号为1 
  2.  
  3.     $uId="1"
  4.  
  5.     //假设赞编号为1 
  6.  
  7.     $zanId="1"
  8.  
  9.     //查找赞id为1的点赞数 
  10.  
  11.     $count=mysqli_query($con"SELECT count FROM zanCount WHERE zanId=$zanId "); 
  12.  
  13.     $countResult=mysqli_fetch_array($count); 
  14.  
  15.     $countZan=$countResult['count']; 
  16.  
  17.     //查找改用户是否对赞id为1 点赞 
  18.  
  19.     $uIdLike=mysqli_query($con"SELECT * FROM zanRecord WHERE uId=$uId "); 
  20.  
  21.     $result=mysqli_fetch_array($uIdLike); 

对用户是否点赞进行判断,并输出不同的html

  1. //点赞 
  2.  
  3. if (isset($result))  
  4.  
  5.     { 
  6.  
  7.      $showZan.=<<<html 
  8.  
  9.   <p class="dolikep" id="dolikep"> 
  10.  
  11.          <button id="dolike" οnclick="zanDel()"></button> 
  12.  
  13.          <span id="zan">$countZan</span> 
  14.  
  15.   </p> 
  16.  
  17. html; 
  18.  
  19.        
  20.  
  21.        
  22.  
  23.     } 
  24.  
  25.     //没点赞 
  26.  
  27.     else 
  28.  
  29.     { 
  30.  
  31.      $showZan.=<<<html 
  32.  
  33.  <p class="dolikep" id="dolikep"> 
  34.  
  35.          <button id="donolike" οnclick="zan()"></button> 
  36.  
  37.          <span id="zan">$countZan</span> 
  38.  
  39.  </p> 
  40.  
  41. html; 
  42.  
  43.     } 
  44.  
  45.     echo $showZan; 
  46.  
  47.  ?> 

css样式

  1. #dolike, #donolike  
  2.  
  3. {  
  4.  
  5.  width:30px; 
  6.  
  7.  height:30px;  
  8.  
  9.  margin-left:20px; 
  10.  
  11.  float:left;} 
  12.  
  13. #donolike  
  14.  
  15.  
  16. background:url(./images/nolike.png);  
  17.  
  18. background-size:30px 30px;  
  19.  
  20.  
  21. #dolike 
  22.  
  23.  
  24. background:url(./images/like.png); 
  25.  
  26.  background-size:30px 30px;  
  27.  
  28.  } 

调用的ajax方法

传递需要的数据,这里传递的时zanId 和uId

记得引入jq文件

点赞

  1. function zan() 
  2.  
  3.  
  4.     $.ajax({ 
  5.  
  6.         type:"POST"
  7.  
  8.         url:"./likeSever.php"
  9.  
  10.         data:{'zanId':$("#zanId").val(),'uId':$("#uId").val()}, 
  11.  
  12.         success:function(text){ 
  13.  
  14.             $("#dolikep").html(text); 
  15.  
  16.         } 
  17.  
  18.     }); 
  19.  
  20.       
  21.  

取消点赞

  1. function zanDel() 
  2.  
  3.  
  4.     $.ajax({ 
  5.  
  6.         type:"POST"
  7.  
  8.         url:"./disSever.php"
  9.  
  10.         data:{'zanId':$("#zanId").val(),'uId':$("#uId").val()}, 
  11.  
  12.         success:function(text){ 
  13.  
  14.             $("#dolikep").html(text); 
  15.  
  16.         } 
  17.  
  18.     }); 
  19.  
  20.       
  21.  

处理代码

点赞处理

  1. //更新赞总数的数据 
  2.  
  3.  mysqli_query($con,"UPDATE zanCount SET count = count+1 WHERE zanId=$zanId"); 
  4.  
  5.    
  6.  
  7.  //添加一条点赞记录  
  8.  
  9.  mysqli_query($con,"INSERT INTO zanRecord(zanId,uId) VALUES($zanId, $uId); "); 
  10.  
  11.    
  12.  
  13.  //查找赞的总数 
  14.  
  15.  @$count=mysqli_query($con, "SELECT count FROM zanCount WHERE zanId=$zanId "); 
  16.  
  17.  @$countResult=mysqli_fetch_array($count); 
  18.  
  19.  @$countZan=$countResult['count']; 
  20.  
  21.    
  22.  
  23.  //更改输出的html 
  24.  
  25.  $show=""
  26.  
  27.  $show=<<<html 
  28.  
  29.  <button id="dolike" οnclick="zanDel()"></button> 
  30.  
  31.         <span id="zan">$countZan</span> 
  32.  
  33. html; 
  34.  
  35.  echo $show; 

取消点赞处理

  1. //更新赞总数的数据 
  2.  
  3.  mysqli_query($con,"UPDATE zanCount SET countcount = count-1 WHERE zanId=$zanId"); 
  4.  
  5.  //添加一条点赞记录 
  6.  
  7.  mysqli_query($con,"DELETE FROM zanRecord WHERE zanId=$zanId AND uId=$uId "); 
  8.  
  9.  //查找赞的总数 
  10.  
  11.  @$count=mysqli_query($con, "SELECT count FROM zanCount WHERE zanId=$zanId "); 
  12.  
  13.  @$countResult=mysqli_fetch_array($count); 
  14.  
  15.  @$countZan=$countResult['count']; 
  16.  
  17.    
  18.  
  19.  //更新html 
  20.  
  21.  $show=""
  22.  
  23.  $show.=<<<html 
  24.  
  25.  <button id="donolike" οnclick="zan()"></button> 
  26.  
  27.         <span id="zan">$countZan</span> 
  28.  
  29. html; 

点赞的图片

图片自己画的,有点不太美观

学习php+mysql+ajax 局部刷新点赞/取消点赞功能

Tags: php+mysql+ajax

分享到: