PHP评星功能通常用于网站或应用中,让用户可以对某个项目、产品或服务进行评分。以下是实现PHP评星功能的基础概念、优势、类型、应用场景以及示例代码。
评星功能通常涉及以下几个方面:
以下是一个简单的PHP评星功能的示例代码:
假设我们有一个名为ratings
的表,结构如下:
CREATE TABLE ratings (
id INT AUTO_INCREMENT PRIMARY KEY,
item_id INT NOT NULL,
user_id INT NOT NULL,
rating INT CHECK (rating >= 1 AND rating <= 5),
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>评星功能</title>
<style>
.star {
font-size: 2em;
cursor: pointer;
}
</style>
</head>
<body>
<h1>评星功能示例</h1>
<div id="star-rating">
<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>
<button id="submit-rating">提交评分</button>
<script>
document.getElementById('star-rating').addEventListener('click', function(event) {
if (event.target.classList.contains('star')) {
const stars = document.querySelectorAll('.star');
stars.forEach(star => star.classList.remove('active'));
for (let i = 0; i < event.target.dataset.value; i++) {
stars[i].classList.add('active');
}
}
});
document.getElementById('submit-rating').addEventListener('click', function() {
const stars = document.querySelectorAll('.star.active');
const rating = stars.length;
const itemId = 1; // 假设要评分的项目ID为1
const userId = 1; // 假设当前用户ID为1
fetch('submit_rating.php', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({ item_id: itemId, user_id: userId, rating: rating })
})
.then(response => response.json())
.then(data => {
alert(data.message);
});
});
</script>
</body>
</html>
<?php
header('Content-Type: application/json');
$db = new PDO('mysql:host=localhost;dbname=your_database', 'username', 'password');
$input = json_decode(file_get_contents('php://input'), true);
$item_id = $input['item_id'];
$user_id = $input['user_id'];
$rating = $input['rating'];
try {
$stmt = $db->prepare("INSERT INTO ratings (item_id, user_id, rating) VALUES (?, ?, ?)");
$stmt->execute([$item_id, $user_id, $rating]);
echo json_encode(['message' => '评分成功']);
} catch (PDOException $e) {
echo json_encode(['message' => '评分失败: ' . $e->getMessage()]);
}
?>
通过以上代码,你可以实现一个简单的评星功能。如果需要更复杂的功能,可以根据具体需求进行扩展。
领取专属 10元无门槛券
手把手带您无忧上云