0 992 2021-02-12 20:13:24
收藏在用php实现无刷新在线点赞功能前,我们需要知道这个功能逻辑流程是什么,其实很简单。首先没点赞的时候显示默认的HTML样式,当点赞就用PHP+AJAX读取数据库内的字段,返回判断是否已经存在,存在代表已经点赞,不存在就写入,然后更改HTML样式。
下面详细讲解,首先需要建立一个数据库,分为两个数据表。一个进行对点赞数的统计,一个进行不同用户的点赞记录。
写PHP接口,首先连接这个数据库。
$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
<div class="dolikeDIV" id="dolikeDIV">
<button id="dolike" οnclick="zanDel()"></button>
<span id="zan">$countZan</span>
</div>
html;
}
//没点赞
else
{
$showZan.=<<<html
<div class="dolikeDIV" id="dolikeDIV">
<button id="donolike" οnclick="zan()"></button>
<span id="zan">$countZan</span>
</div>
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){
$("#dolikeDIV").html(text);
}
});
}
取消点赞
function zanDel()
{
$.ajax({
type:"POST",
url:"./disSever.php",
data:{'zanId':$("#zanId").val(),'uId':$("#uId").val()},
success:function(text){
$("#dolikeDIV").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" οnclick="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" οnclick="zan()"></button> <span id="zan">$countZan</span> html; //更新赞总数的数据 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" οnclick="zan()"></button> <span id="zan">$countZan</span> html;
本文地址:https://xzo.com.cn/develop/php/541.html

如果您认可我们的分享,有意与我们合作开展帝国cms网站建设与开发业务或插件定制,请联系右侧在线客服。我们能给您的,就是高质量的模板与售后。
标注了信息来源为下载鸥的文章皆为原创,如果是转载的优质文章,我们也都标注了出处。如果您喜欢我们的文章,请按照下载鸥所标注的文章出处进行标注,谢谢您的配合。

PHP是一种服务器端、跨平台、html嵌入式的脚本语言,其功能十分强大、入门简单。在过去,民间一直有说法称“PHP是最好的编程语言”,是PHP开发者对自身所使用语言的肯定。
PHP曾是最主流的网站web开发语言之一,现在也依然十分流行。
在日常文章的发表过程中,由于需要引入一些外部链接达到更好的效果与体验。但...
我们知道,str_replace是可以执行替换命令的,但一般是用于一对一替换,这个很好...
在开发过程中,我们很多时候会接到猜你喜欢的随机展示效果。这个随机,用php取...
我们使用php开发网站的时候,经常会需要调试确保功能正常。而如果功能出现异...
json是使用非常广泛的数据,通过使用json,我们还可以实现多种语言的联动。今天...
php分割中文字符,之前计划的是可用于搜索结果、tag结果关键词标红。但在实际...
今天有朋友咨询鸥哥,说php写的for循环本来至少要循环9次,但却只执行了一次就...
在网站建成后的维护与优化阶段,我们会面临无用栏目/数据处理的问题。量小的...
一直没看到好用的帝国cms在线考试插件,所以自己开发了一款。在线考试插件用...
用户体验是我们的需求,百度蜘蛛的认可更是我们的需求。毕竟,没有收录排名,何来...
使用帝国cms的企业用户、新闻资讯类站点的用户很多,此类站点很多时候需要有...
通过本插件,可以实现帝国cms网站对接百度云api实现图像清晰度增强的功能。经...
帝国cms默认只有上次登录时间与ip,没有一个记录清单,所以今天,我们分享这个帝...
帝国cms 对接纳米数据(www.nami.com)接口,本接口主要接收、整理足球比赛实时数...
帝国CMS自带的搜索功能虽然强大,但也有很强的局限性 -- 必须关键词完全匹配...
通过本插件,可以实现帝国cms网站对接百度云api实现图像去雾的功能。经过实际...