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

发布时间:2024-02-14
记录每个赞的点赞用户,以及对赞的数量统计
首先判断用户是否点赞。根据是否点赞,载入不同的html,调用不同的方法
已点赞
如果已点赞,显示已点赞的html,进行取消点赞操作
相关学习推荐:php编程(视频)
未点赞
如果未点赞,显示未点赞的html,进行点赞操作
对于不同操作,对数据库进行增加或减少操作。同时对于不同用户的点赞,进行增加记录或删除记录操作。通过控制不同按钮的背景,来显示不同的效果。通过记录不同用户的用户id和赞的id之间的关系,进行不同点赞的限制。
效果演示
当用户id为1时,进行点赞,点赞数加1
$con = new mysqli('localhost','root','','test'); if (!$con) { die('连接数据库失败,失败原因:' . mysqli_error()); }else { // echo "连接成功"; }对用户是否点赞进行判断(操作页面)
对数据库的信息进行提取
//假设用户编号为1 $uid="1"; //假设赞编号为1 $zanid="1"; //查找赞id为1的点赞数 $count=mysqli_query($con, "select count from zancount where zanid=$zanid "); $countresult=mysqli_fetch_array($count); $countzan=$countresult['count']; //查找改用户是否对赞id为1 点赞 $uidlike=mysqli_query($con, "select * from zanrecord where uid=$uid "); $result=mysqli_fetch_array($uidlike);对用户是否点赞进行判断,并输出不同的html
//点赞if (isset($result)) { $showzan.=<<<html <p class="dolikep" id="dolikep"> <button id="dolike" οclick="zandel()"></button> <span id="zan">$countzan</span> </p>html; } //没点赞 else { $showzan.=<<<html <p class="dolikep" id="dolikep"> <button id="donolike" οclick="zan()"></button> <span id="zan">$countzan</span> </p>html; } echo $showzan; ?>css样式
#dolike, #donolike { width:30px; height:30px; margin-left:20px; float:left;}#donolike {background:url(./images/nolike.png); background-size:30px 30px; }#dolike{background:url(./images/like.png); background-size:30px 30px; }调用的ajax方法
传递需要的数据,这里传递的时zanid 和uid
记得引入jq文件
点赞
function zan(){ $.ajax({ type:"post", url:"./likesever.php", data:{'zanid':$("#zanid").val(),'uid':$("#uid").val()}, success:function(text){ $("#dolikep").html(text); } }); }取消点赞
function zandel(){ $.ajax({ type:"post", url:"./dissever.php", data:{'zanid':$("#zanid").val(),'uid':$("#uid").val()}, success:function(text){ $("#dolikep").html(text); } }); }处理代码
点赞处理
//更新赞总数的数据 mysqli_query($con,"update zancount set count = count 1 where zanid=$zanid"); //添加一条点赞记录 mysqli_query($con,"insert into zanrecord(zanid,uid) values($zanid, $uid); "); //查找赞的总数 @$count=mysqli_query($con, "select count from zancount where zanid=$zanid "); @$countresult=mysqli_fetch_array($count); @$countzan=$countresult['count']; //更改输出的html $show=""; $show=<<<html <button id="dolike" οclick="zandel()"></button> <span id="zan">$countzan</span>html; echo $show;取消点赞处理
//更新赞总数的数据 mysqli_query($con,"update zancount set count = count-1 where zanid=$zanid"); //添加一条点赞记录 mysqli_query($con,"delete from zanrecord where zanid=$zanid and uid=$uid "); //查找赞的总数 @$count=mysqli_query($con, "select count from zancount where zanid=$zanid "); @$countresult=mysqli_fetch_array($count); @$countzan=$countresult['count']; //更新html $show=""; $show.=<<<html <button id="donolike" οclick="zan()"></button> <span id="zan">$countzan</span>html;点赞的图片
图片自己画的,有点不太美观
上一个:三款白领美体瘦身茶
下一个:普洱茶该如何保存?

华为云服务器怎么调中文模式
手机安装不了美团怎么办(小米手机安装不了应用商店外的软件)
南城汉代海昏侯国遗址公园开园时间 需要预约吗
陆生和附生的掌类植物有何不同?
绿茶松糕的做法
北京菊花展在哪个公园 北京菊花展展区地址
舟形毛虫
高压介质损耗测试仪在电力测试中用途
两字母域名FI.cn被区块链终端拿下
新版 球囊直径与充盈压力关系测试仪 自动测量结构