kreci-net / star-rating
JavaScript/PHP 中带有悬停和点击功能的交互式星级评分
dev-main
2023-07-06 13:45 UTC
Requires
- php: >=7.4
Requires (Dev)
- phpunit/phpunit: ^9.5
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 保护免受虚假评分的影响
演示
在这里,您可以找到一个实现的 星级评分演示。您可以点击星形图标将评分提交到服务器,并刷新页面以查看平均评分。
使用方法
- 在您的 HTML 文件中(在评分元素之后)包含 JavaScript 文件
stars.js
<script src="rating.js"></script>
- 添加以下 HTML 结构用于评分星形
<div class="rating-stars"> <span class="star" data-value="1">★</span> <span class="star" data-value="2">★</span> <span class="star" data-value="3">★</span> <span class="star" data-value="4">★</span> <span class="star" data-value="5">★</span> </div>
注意:您可以通过添加或删除 <span>
元素来修改星形数量。
- 该脚本可以对多个元素进行评分,并将数据存储在 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.html
和 rating.php
文件中找到一个工作示例。示例演示了如何将评分脚本集成以启用基于星形的评分。
浏览器兼容性
此脚本与包括 Chrome、Firefox、Safari 和 Edge 在内的现代网络浏览器兼容。它需要 JavaScript 支持才能正常工作。
依赖关系
此评分脚本没有外部依赖关系。它是使用原生 JavaScript/PHP 构建的。
已知问题
- 目前没有。
请随意自定义和修改脚本以符合您的特定要求。
如果您有任何问题或遇到任何问题,请随时在存储库中打开一个问题或寻求支持。
享受使用评分脚本!
许可协议
本项目采用 MIT 许可协议。