- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章php+mysql+ajax 局部刷新点赞/取消点赞功能(每个账号只点赞一次)由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
记录每个赞的点赞用户,以及对赞的数量统计 首先判断用户是否点赞。根据是否点赞,载入不同的html,调用不同的方法 。
已点赞 。
如果已点赞,显示已点赞的html,进行取消点赞操作 。
未点赞 。
如果未点赞,显示未点赞的html,进行点赞操作 。
对于不同操作,对数据库进行增加或减少操作。同时对于不同用户的点赞,进行增加记录或删除记录操作。通过控制不同按钮的背景,来显示不同的效果。通过记录不同用户的用户id和赞的id之间的关系,进行不同点赞的限制.
效果演示 。
当用户id为1时,进行点赞,点赞数加1 。
更改用户id,当id为2时,用户1的用户已进行了点赞,点赞数在用户1点赞基础上增加1 。
数据库 。
数据库,分为两个数据表。一个进行对点赞数的统计,一个进行不同用户的点赞记录.
两个数据表的详细信息 。
连接数据库 。
1
2
3
4
5
6
7
|
$con
=
new
mysqli(
'localhost'
,
'root'
,
''
,
'test'
);
if
(!
$con
)
{
die
(
'连接数据库失败,失败原因:'
. mysqli_error());
}
else
{
// echo "连接成功";
}
|
对用户是否点赞进行判断(操作页面) 。
对数据库的信息进行提取 。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
//假设用户编号为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 。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
//点赞
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样式 。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
#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文件 点赞 。
1
2
3
4
5
6
7
8
9
10
11
12
|
function
zan()
{
$.ajax({
type:
"post"
,
url:
"./likesever.php"
,
data:{
'zanid'
:$(
"#zanid"
).val(),
'uid'
:$(
"#uid"
).val()},
success:
function
(text){
$(
"#dolikediv"
).html(text);
}
});
}
|
取消点赞 。
1
2
3
4
5
6
7
8
9
10
11
12
|
function
zandel()
{
$.ajax({
type:
"post"
,
url:
"./dissever.php"
,
data:{
'zanid'
:$(
"#zanid"
).val(),
'uid'
:$(
"#uid"
).val()},
success:
function
(text){
$(
"#dolikediv"
).html(text);
}
});
}
|
处理代码 。
点赞处理 。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
//更新赞总数的数据
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
;
|
取消点赞处理 。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
//更新赞总数的数据
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;
|
点赞的图片 图片自己画的,有点不太美观 。
jq下载地址 完整demo下载 。
到此这篇关于php+mysql+ajax 局部刷新点赞/取消点赞功能(每个账号只点赞一次)的文章就介绍到这了,更多相关php+mysql+ajax 局部刷新点赞内容请搜索我以前的文章或继续浏览下面的相关文章希望大家以后多多支持我! 。
原文链接:https://blog.csdn.net/m0_46977769/article/details/107479351 。
最后此篇关于php+mysql+ajax 局部刷新点赞/取消点赞功能(每个账号只点赞一次)的文章就讲到这里了,如果你想了解更多关于php+mysql+ajax 局部刷新点赞/取消点赞功能(每个账号只点赞一次)的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我们知道,当使用 hibernate 对数据库进行批量更新时(即使在 HQL 中),所做的更改不会复制到存储在当前 session 中的实体。 所以我可以调用 session.refresh 来加载对
我正在做一个项目,所有的东西都保存在事件中,所以服务器需要一些时间来响应新数据。我正在使用 Fluent 等待使用 ajax 的页面,但是这个不使用任何 ajax。所以我想刷新页面检查是否有新项目,如
我有一个从 Vector 创建的 JTable。 如何刷新 JTable 以显示添加到 Vector 的新数据? 最佳答案 当 TableModel 发生更改时,您的 JTable 应该会自动更新。我
有没有办法使用下面的代码来刷新已经存在的 div id,而不是刷新时间? window.onload = startInterval; function startInterval() {
我更新了在 Shiny Server 上运行的 Shiny 应用程序使用的 DataSet.RData。但是, Shiny 的应用程序仍在旧数据上运行。我已通过浏览器历史记录清除并重新启动浏览器几次,
我的应用程序中有一个无限滚动的网格面板(ExtJs 4.2.1),类似于 this example .用户可以单击刷新按钮,然后必须使用数据库中的数据更新网格的行。我在刷新按钮处理程序中调用 stor
我不知道这三种方法中哪一种最适合我。他们都为我工作。有谁知道刷新、更新和重画之间的区别吗? 最佳答案 根据在线文档: Refresh - 重新绘制屏幕上的控件。 Call Refresh method
有什么办法吗 ICollectionView.Refresh() 或者 CollectionViewSource.GetDefaultView(args.NewValue).Refresh(); 在
这个问题已经有答案了: Updating address bar with new URL without hash or reloading the page [duplicate] (4 个回答)
我有一个 javascript 设置超时以在 10 秒后关闭 div,并且我想在 div 关闭时添加页面刷新。我正在使用的代码如下。 var container_close_sec = "1
我有一组具有以下名称的页面.... update1.php update2.php update3.php update4.php update5.php update6.php update7.ph
如果是则触发js函数。我可以使一个复选框保持选中状态,并在页面刷新时检查值并选中“checked”,并提交以下内容... checked="checked" /> 你都不记得触发js函数。 这是我的
我正在尝试刷新 php 脚本以在数据库更新时显示更新的内容。我首先构建了我的 php,然后刷新代码,然后合并它们。但是,脚本不会更新。有谁知道为什么吗? $(document).ready
当我要删除的节点扩展集合类型时,Grails中有一个错误阻止我使用removeFrom *。直接从关联中删除节点不会更新二级缓存。 A hasMany B 有什么方法可以使关联缓存手动无效或强制重新加
我正在使用 hibernate 和 mysql 来抽象一个数据库,以便在 java 驱动的网站中使用。我使用 hibernate 很好地解决了所有查询,但似乎无法弄清楚如何使用它进行更新、插入和删除,
如何通过调用 oncreateview 方法重新创建 fragment ?我有一个 fragment ,用于通过表单插入新数据,单击按钮后,我想通过删除在 EditText 中输入的数据来重新创建 f
当我从一个到另一个时,我试图刷新我的观点。我知道我应该将刷新代码放在 viewWillAppear 中,但我不知道该放什么代码。 你们能帮帮我吗? 谢谢! 最佳答案 在您看来,请调用 setNeeds
我正在开发 iPhone 应用程序并希望使用: CFStreamCreatePairWithSocketToHost(NULL, url, port, &serverReadStream, &serv
看到我已经创建了一个用于登录用户的脚本。而且我还添加了设置选项卡,以便用户可以编辑他们的设置!但是当我尝试它时,mysql 表中的数据发生了变化,但配置文件中显示的用户名和用户电子邮件保持不变!当我注
好的。这就是它的样子。 当我启动应用程序时,我从服务器收到的第一件事是数据: {name: "test", type: "checkbox" checked: true, } 这使得其中一个复选框
我是一名优秀的程序员,十分优秀!