php+mysql结合Ajax实现点赞功能完整实例

下面我将详细讲解 “php+mysql结合Ajax实现点赞功能完整实例”的攻略。

一、前置知识

在学习本例之前,需要掌握基本的PHP、MySQL和Ajax的使用知识。另外,需要了解一下前端和后端交互的原理,以及前端数据的异步处理方式。

二、实现过程

1. 数据库设计

本例中需要设计一个数据库表,用来存储点赞的数据:

CREATE TABLE `likes` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `article_id` int(11) NOT NULL,
  `user_id` int(11) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

其中,id为点赞记录的唯一标识;article_id为所点赞的文章的ID;user_id为点赞用户的ID。

2. 编写点赞功能的PHP代码

  • 接收前端传来的article_iduser_id参数,将点赞信息插入到数据库中,并返回操作结果:
$article_id = $_POST['article_id'];
$user_id = $_POST['user_id'];

$conn = new mysqli('localhost','root','password','database');
$sql = "INSERT INTO likes (article_id,user_id) VALUES ('$article_id','$user_id')";
$res = $conn -> query($sql);

if($res){
  echo "success";
}else{
  echo "fail";
}
  • 查询某篇文章的点赞数量,并将结果返回:
$article_id = $_POST['article_id'];

$conn = new mysqli('localhost','root','password','database');
$sql = "SELECT COUNT(*) FROM likes WHERE article_id = '$article_id'";
$res = $conn -> query($sql);
$row = $res -> fetch_assoc();
$count = $row['COUNT(*)'];

echo $count;

3. 编写点赞功能的Ajax代码

  • 发送点赞请求
$.ajax({
  url: 'like.php',
  type: 'POST',
  data: {
    'article_id': 1,
    'user_id': 2
  },
  success: function(data){
    if(data === 'success'){
      alert('点赞成功');
    }else{
      alert('点赞失败');
    }
  }
});
  • 查询点赞数量
$.ajax({
  url: 'count.php',
  type: 'POST',
  data: {
    'article_id': 1
  },
  success: function(data){
    $('#count').html(data);
  }
});

其中,like.phpcount.php分别为上面编写的点赞和查询点赞数量的PHP文件。

三、注意事项

  • 在点赞操作中,需要使用事务来保证数据的一致性。
  • 在查询点赞数量时,需要加上缓存机制,避免每次查询都会对数据库造成额外的负担。

四、示例说明

在实施这个例子之前,需要在本地或者服务器端创建一个包含上述数据库表的数据库,保存主页面、点赞页面和Ajax代码所需要的信息。

第一个示例:展示点赞页面,该页面将会调用点赞PHP脚本:

<!DOCTYPE html>
<html>
<head>
  <title>点赞页面</title>
  <meta charset="utf-8">
  <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
</head>
<body>
  <button onclick="like(1,2)">点赞</button>
  <p>已有<span id="count"></span>个人点赞</p>
  <script>
    function like(article_id,user_id){
      $.ajax({
        url: 'like.php',
        type: 'POST',
        data: {
          'article_id': article_id,
          'user_id': user_id
        },
        success: function(data){
          if(data === 'success'){
            alert('点赞成功');
            get_count(article_id);
          }else{
            alert('点赞失败');
          }
        }
      });
    }

    function get_count(article_id){
      $.ajax({
        url: 'count.php',
        type: 'POST',
        data: {
          'article_id': article_id
        },
        success: function(data){
          $('#count').html(data);
        }
      });
    }

    get_count(1);
  </script>
</body>
</html>

该页面中有一个按钮,当用户点击该按钮时,会向服务器发送请求,调用点赞PHP脚本。同时,该页面还会显示当前已有多少人点赞。

第二个示例:展示主页面,该页面将会被用户打开:

<!DOCTYPE html>
<html>
<head>
  <title>主页面</title>
</head>
<body>
  <a href="like.php">点赞</a>
</body>
</html>

在该页面中仅有一个连接,在用户单机该链接时,会跳转到点赞页面。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:php+mysql结合Ajax实现点赞功能完整实例 - Python技术站

(0)
上一篇 2023年6月11日
下一篇 2023年6月11日

相关文章

  • 给js文件传参数(详解)

    下面是一份详细的“给js文件传参数(详解)”攻略。 什么是给JS文件传参数? 在网页开发中,经常需要使用 JavaScript 来完成各种交互效果和页面逻辑。而在这些 JavaScript 文件中,有时需要引用一些外部数据,比如页面的标题、用户输入的某些值等。这时候就需要通过给 JS 文件传递参数来实现。 通俗地说,就是将一些数据从网页传递给 JS 文件,让…

    JavaScript 2023年5月27日
    00
  • JavaScript 对象深入学习总结(经典)

    关于“JavaScript 对象深入学习总结(经典)”的完整攻略,我们可以将其分成以下几个部分进行讲解: 1. 对象的定义 在 JavaScript 中,对象是一种复合数据类型,它是由属性和方法组成的实例。对象可以看作是一个容器,它可以存储数据和方法。对象在 JavaScript 中非常重要,几乎所有的应用都离不开对象。 对象的定义方式有两种,一种是使用对象…

    JavaScript 2023年5月18日
    00
  • 原生js实现中奖信息无间隙滚动效果

    中奖信息无间隙滚动效果通常是在网页中的信息滚动区域,而且信息要连贯无缝滚动,没有间隙。实现这个效果的方法有很多,下面我来介绍一种基于原生JS实现的方法。 实现原理 在这个效果中,需要用到三个信息块,从上往下分别为当前显示块、上一个块、下一个块。通过修改它们的CSS属性,可以实现连续无缝滚动的效果。 首先在HTML中创建滚动区域并添加三个信息块: <di…

    JavaScript 2023年6月11日
    00
  • 推荐自用 Javascript 缩图函数 (onDOMLoaded)……

    推荐自用 Javascript 缩图函数 (onDOMLoaded) 完整攻略 简介 本文介绍如何使用自制的Javascript缩图函数,在网页加载完成时动态生成缩略图并缓存到浏览器。这个缩图函数可以实现对任何图片的缩放和加载加速,用户能够更快地预览高清图片,同时亦可以节省流量和加载时间。 准备工作 在开始之前,您需要了解一些前置知识: HTML, CSS和…

    JavaScript 2023年6月10日
    00
  • JS控件bootstrap suggest plugin使用方法详解

    JS控件bootstrap suggest plugin使用方法详解 简介 Bootstrap Suggest Plugin是一个基于Bootstrap框架开发的下拉菜单插件,它通过jQuery来实现自动补全和建议功能,可以非常方便地为文本框、选择器添加下拉菜单。 安装 首先,你需要引入 Bootstrap Suggest插件的js文件,并且在页面中放置文本…

    JavaScript 2023年6月11日
    00
  • javascript 异常处理使用总结

    JavaScript 异常处理使用总结 什么是 JavaScript 异常处理? JavaScript 异常处理是指,在 JavaScript 代码运行过程中发生错误时,能够通过编写特定的代码来处理这些错误,以保证代码的正常运行。 为什么需要 JavaScript 异常处理? 在 JavaScript 代码中,错误的出现是不可避免的。如果我们不处理这些错误,…

    JavaScript 2023年5月27日
    00
  • Ajax 框架学习笔记

    Ajax 框架学习笔记攻略 Ajax 是 Asynchronous JavaScript and XML(异步的 JavaScript 和 XML)的缩写,它可以通过在不刷新页面的情况下与服务器进行数据交互,使得网站更为流畅和用户友好。下面将详细介绍 Ajax 框架学习的完整攻略: 1. 学习 Ajax 请求和响应 首先要了解的是 Ajax 请求和响应,包括…

    JavaScript 2023年6月11日
    00
  • 原生js实现旋转木马效果

    实现旋转木马效果,可以分为如下几个步骤: 初始布局 在HTML中创建一个容器元素,然后在其中添加多个子元素,这些子元素将组成我们的木马效果。为了充分体现木马效果,这些子元素需要位置排列形成一个环。 样式与动画 为容器元素以及子元素定义样式,使其在页面中呈现出我们想要的样式和动画效果。通过CSS3中的转换、动画控制元素的旋转、移动、透明度等效果。在这里,我们需…

    JavaScript 2023年6月11日
    00
合作推广
合作推广
分享本页
返回顶部