随着互联网的迅速发展,Web应用程序的用户体验成为了越来越重要的因素。使用Ajax技术实现点赞功能是常见的一种方式。本文将介绍如何使用ThinkPHP框架快速实现一个基于Ajax的点赞功能。
一、开发环境准备
本文使用ThinkPHP5.1框架,需要安装PHP5.5以上版本和MySQL数据库,并确保环境可以运行ThinkPHP。
二、创建数据库表
在MySQL中创建以下表格:
1 2 3 4 5 6 7 8 | CREATE TABLE `likes` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`content_id` int(11) NOT NULL COMMENT '点赞的文章id' ,
`user_id` int(11) NOT NULL COMMENT '点赞的用户id' ,
`created_time` int(11) NOT NULL DEFAULT '0' COMMENT '点赞时间戳' ,
`updated_time` int(11) NOT NULL DEFAULT '0' COMMENT '更新时间戳' ,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
登录后复制
三、Controller层
创建一个LikesController.php控制器,使用如下代码获取Ajax请求:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | namespace app\index\controller;
use think\Controller;
use think\Db;
class LikesController extends Controller
{
public function like()
{
$content_id = input( 'post.content_id' );
$user_id = input( 'post.user_id' );
$created_time = time();
$updated_time = time();
$data = [
'content_id' => $content_id ,
'user_id' => $user_id ,
'created_time' => $created_time ,
'updated_time' => $updated_time ,
];
$result = Db::name( 'likes' )->insert( $data );
if ( $result ) {
return json([ 'code' => 200, 'msg' => '点赞成功' ]);
} else {
return json([ 'code' => 500, 'msg' => '点赞失败' ]);
}
}
}
|
登录后复制
四、View层
创建一个index.html前端页面,使用jQuery监听用户点击事件,向服务器发送Ajax请求:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | <!DOCTYPE html>
<html>
<head>
<title>点赞</title>
<meta charset= "utf-8" >
<script type= "text/javascript" src= "https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js" ></script>
</head>
<body>
<div id= "like_button" data-content-id= "1" data-user-id= "1" >点赞</div>
</body>
<script type= "text/javascript" >
$(document).ready( function () {
$( '#like_button' ).click( function () {
var content_id = $(this).data( 'content-id' );
var user_id = $(this).data( 'user-id' );
$.ajax({
url: "/LikesController/like" ,
type: "POST" ,
dataType: "json" ,
data: { "content_id" : content_id, "user_id" : user_id},
success: function (data) {
if (data.code == 200) {
alert(data.msg);
} else {
alert(data.msg);
}
}
});
});
});
</script>
</html>
|
登录后复制
五、路由设置
在路由文件(route.php)中增加一个路由:
1 | Route::post( '/LikesController/like' , 'index/LikesController/like' );
|
登录后复制
六、测试
启动服务器,访问http://localhost/index/index/index,点击点赞即可测试该功能。在MySQL中查看likes表中是否增加记录,确保点赞成功。
七、总结
通过使用ThinkPHP框架和jQuery技术,实现了一个基于Ajax的点赞功能。该功能能够提升Web应用程序的用户体验,增强用户与Web应用程序的互动性。
以上是thinkphp快速实现一个基于Ajax的点赞功能的详细内容。更多信息请关注PHP中文网其他相关文章!