kreci-net/star-rating

JavaScript/PHP 中带有悬停和点击功能的交互式星级评分

dev-main 2023-07-06 13:45 UTC

This package is auto-updated.

Last update: 2024-09-06 16:27:35 UTC


README

此评分脚本是一个 JavaScript/PHP 组件,允许用户使用星形图标对元素进行评分。它提供了带有悬停和点击功能的交互式星级评分。评分数据通过 rating.php 脚本发送和检索。

功能

  • 显示可以交互以评分元素的星形图标。
  • 根据用户的交互动态更新星形颜色。
  • 将评分数据发送到服务器端的 rating.php 脚本进行存储。
  • 在页面加载时从 rating.php 脚本检索初始评分。
  • 一个用户限制对每个产品 ID 使用 LocalStorage 仅评分一次
  • PHP API 使用 CSRF 保护免受虚假评分的影响

演示

在这里,您可以找到一个实现的 星级评分演示。您可以点击星形图标将评分提交到服务器,并刷新页面以查看平均评分。

使用方法

  1. 在您的 HTML 文件中(在评分元素之后)包含 JavaScript 文件 stars.js
<script src="rating.js"></script>
  1. 添加以下 HTML 结构用于评分星形
<div class="rating-stars">
    <span class="star" data-value="1">&#9733;</span>
    <span class="star" data-value="2">&#9733;</span>
    <span class="star" data-value="3">&#9733;</span>
    <span class="star" data-value="4">&#9733;</span>
    <span class="star" data-value="5">&#9733;</span>
</div>

注意:您可以通过添加或删除 <span> 元素来修改星形数量。

  1. 该脚本可以对多个元素进行评分,并将数据存储在 CSV 文件中(示例中的 ratings.csv)。评分元素的 ID 通过当前 URL 中的模式(如 "domain.com/?123,somedescription""domain.com/index.html?123""domain.com/index.php?123")提取。您可以编辑 stars.js 文件中的 getID() 函数来修改模式。如果未在 URL 中找到 ID,则使用 stars.js 文件中的 const failOverID

服务器端脚本(RatingManager.php)

服务器端脚本(RatingManager.php)负责 API 请求授权、处理和存储评分数据。它通过 URL 参数接收评分值和正在评分的项的 ID,并使用 StorageInterface 对象(示例中为存储在文件中的 StorageCSV 类)存储这些数据。

示例

您可以在本存储库中的 example.htmlrating.php 文件中找到一个工作示例。示例演示了如何将评分脚本集成以启用基于星形的评分。

浏览器兼容性

此脚本与包括 Chrome、Firefox、Safari 和 Edge 在内的现代网络浏览器兼容。它需要 JavaScript 支持才能正常工作。

依赖关系

此评分脚本没有外部依赖关系。它是使用原生 JavaScript/PHP 构建的。

已知问题

  • 目前没有。

请随意自定义和修改脚本以符合您的特定要求。

如果您有任何问题或遇到任何问题,请随时在存储库中打开一个问题或寻求支持。

享受使用评分脚本!

许可协议

本项目采用 MIT 许可协议。