thinkphp快速实现一个基于Ajax的点赞功能

随着互联网的迅速发展,web应用程序的用户体验成为了越来越重要的因素。使用ajax技术实现点赞功能是常见的一种方式。本文将介绍如何使用thinkphp框架快速实现一个基于ajax的点赞功能。

一、开发环境准备

本文使用thinkphp5.1框架,需要安装PHP5.5以上版本和mysql数据库,并确保环境可以运行ThinkPHP。

二、创建数据库表

在MySQL中创建以下表格:

立即学习PHP免费学习笔记(深入)”;

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请求:

namespace appindexcontroller;  use thinkController; use thinkDb;  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请求:

<!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)中增加一个路由:

Route::post('/LikesController/like', 'index/LikesController/like');

六、测试

启动服务器,访问http://localhost/index/index/index,点击点赞即可测试该功能。在MySQL中查看likes表中是否增加记录,确保点赞成功。

七、总结

通过使用ThinkPHP框架和jQuery技术,实现了一个基于Ajax的点赞功能。该功能能够提升Web应用程序的用户体验,增强用户与Web应用程序的互动性。

© 版权声明
THE END
喜欢就支持一下吧
点赞9 分享