点赞
当前位置:首页 > PHP

php使用ajax实现点赞

2026-01-29 07:01:03PHP

实现步骤

前端部分(HTML + JavaScript)

创建点赞按钮和显示点赞数的元素:

<button id="like-btn">点赞</button>
<span id="like-count">0</span>

使用jQuery处理AJAX请求:

$(document).ready(function() {
    $('#like-btn').click(function() {
        $.ajax({
            url: 'like.php',
            type: 'POST',
            data: { action: 'like' },
            success: function(response) {
                $('#like-count').text(response.likes);
            }
        });
    });
});

后端部分(PHP)

创建like.php处理点赞请求:

<?php
header('Content-Type: application/json');

// 模拟数据库存储点赞数
session_start();
if (!isset($_SESSION['likes'])) {
    $_SESSION['likes'] = 0;
}

if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['action'])) {
    if ($_POST['action'] === 'like') {
        $_SESSION['likes']++;
        echo json_encode(['likes' => $_SESSION['likes']]);
        exit;
    }
}

echo json_encode(['likes' => $_SESSION['likes']]);
?>

数据库集成

修改like.php使用MySQL数据库:

<?php
header('Content-Type: application/json');

$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";

$conn = new mysqli($servername, $username, $password, $dbname);

if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['action'])) {
    if ($_POST['action'] === 'like') {
        $sql = "UPDATE likes SET count = count + 1 WHERE id = 1";
        $conn->query($sql);
    }
}

$result = $conn->query("SELECT count FROM likes WHERE id = 1");
$row = $result->fetch_assoc();
echo json_encode(['likes' => $row['count']]);

$conn->close();
?>

防止重复点赞

在前端添加禁用按钮逻辑:

$('#like-btn').click(function() {
    $(this).prop('disabled', true);
    $.ajax({
        // ...原有AJAX代码...
    });
});

完整实现方案

  1. 创建数据库表:

    CREATE TABLE likes (
     id INT PRIMARY KEY,
     count INT DEFAULT 0
    );
    INSERT INTO likes (id, count) VALUES (1, 0);
  2. 完整PHP代码:

    
    <?php
    header('Content-Type: application/json');

$conn = new mysqli("localhost", "username", "password", "myDB");

if ($_SERVER['REQUEST_METHOD'] === 'POST') { if (isset($_POST['action']) && $_POST['action'] === 'like') { $stmt = $conn->prepare("UPDATE likes SET count = count + 1 WHERE id = 1"); $stmt->execute(); } }

$stmt = $conn->prepare("SELECT count FROM likes WHERE id = 1"); $stmt->execute(); $result = $stmt->get_result(); $data = $result->fetch_assoc();

echo json_encode(['likes' => $data['count']]); $conn->close(); ?>

php使用ajax实现点赞


3. 完整前端代码:
```html
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<button id="like-btn">点赞</button>
<span id="like-count">0</span>

<script>
$(function() {
    // 初始加载点赞数
    $.get('like.php', function(data) {
        $('#like-count').text(data.likes);
    });

    $('#like-btn').click(function() {
        $(this).prop('disabled', true);
        $.ajax({
            url: 'like.php',
            type: 'POST',
            data: { action: 'like' },
            success: function(data) {
                $('#like-count').text(data.likes);
            }
        });
    });
});
</script>

标签: phpajax
分享给朋友:

相关文章

php实现注册

php实现注册

注册功能实现步骤 数据库准备 创建用户表,包含字段如id、username、password、email等。示例SQL: CREATE TABLE users ( id INT AUTO_I…

php 实现文件下载

php 实现文件下载

实现文件下载的基本方法 使用 PHP 实现文件下载的核心是通过设置 HTTP 头部信息,强制浏览器将文件作为附件下载而非直接显示。以下是一个基础实现示例: $file_path = '/path/t…

php实现博客

php实现博客

使用PHP实现博客系统 数据库设计 创建数据库表存储博客文章和用户信息。常见的表包括posts(文章)和users(用户)。 CREATE TABLE users ( id INT AUTO…

php 函数实现

php 函数实现

PHP 函数实现基础 PHP 函数的定义使用 function 关键字,后跟函数名和参数列表。函数名不区分大小写,但建议保持一致。 function functionName($param1, $p…

php实现推送消息推送消息

php实现推送消息推送消息

PHP 实现消息推送的方法 使用 WebSocket 实现实时推送 WebSocket 是一种在单个 TCP 连接上进行全双工通信的协议,适合实现实时消息推送。 安装 Ratchet 库(WebSo…

php实现过程

php实现过程

PHP 实现过程 PHP 是一种广泛使用的服务器端脚本语言,特别适合 Web 开发。以下是 PHP 实现过程的关键步骤和注意事项。 安装与配置 下载并安装 PHP,可以从官方 PHP 网站获取最新版…