img我有一个问题,我无法解决。我正在制作一个评级系统,在上一篇文章中,最高评级为5,每篇文章都会在星星中显示。我不知道我做错了什么,并且想知道是否有人可以看看吧谢谢。 img:https://gyazo.com/61e0a1638821e1bf542f372a30ea8ee1
代码非常大,所以我将包含重要的东西。
<?php
$query = $db->query("SELECT article.id,article.title, AVG(ratings.rates) AS rating
FROM article LEFT JOIN ratings ON article.title = ratings.title
GROUP BY article.id")
while ($show = mysqli_fetch_array($query)) {
echo "<a href='rate.php?id=".$show['id']."&title=".$show['title']."'><h1>".$show['title']."</h1></a><ul>
<li><label for='rating_1' class='rating1'><i class='fas fa-star'></i></label><input type='radio' name='ratings' id='rating_1' value='1'></li>
<li><label for='rating_2' class='rating2'><i class='fas fa-star'></i></label><input type='radio' name='ratings' id='rating_2' value='2'></li>
<li><label for='rating_3' class='rating3'><i class='fas fa-star'></i></label><input type='radio' name='ratings' id='rating_3' value='3'></li>
<li><label for='rating_4' class='rating4'><i class='fas fa-star'></i></label><input type='radio' name='ratings' id='rating_4' value='4'></li>
<li><label for='rating_5' class='rating5'><i class='fas fa-star'></i></label><input type='radio' name='ratings' id='rating_5' value='5'></li>
</ul>";
echo "".round($show['rating'])."";
$number= $show['rating'];
echo "<script language='javascript'>
if ($number>=1) {
$('.rating1').css({'color':'blue'});
}
if ($number>=2) {
$('.rating2').css({'color':'blue'});
}
if ($number>=3) {
$('.rating3').css({'color':'blue'});
}
if ($number>=4) {
$('.rating4').css({'color':'blue'});
}
if ($number>=5) {
$('.rating5').css({'color':'blue'});
}
</script>
";
}
?>
每行都有相同的类。因此,所有行都采用最后一个$number
的值。您可以包含这样的ID以使所有不同:
while ($show = mysqli_fetch_array($query)) {
echo "<a href='rate.php?id=".$show['id']."&title=".$show['title']."'><h1>".$show['title']."</h1></a><ul>
<li><label for='rating_1' class='rating1_".$show['id']."'><i class='fas fa-star'></i></label><input type='radio' name='ratings' id='rating_1' value='1'></li>
<li><label for='rating_2' class='rating2_".$show['id']."'><i class='fas fa-star'></i></label><input type='radio' name='ratings' id='rating_2' value='2'></li>
<li><label for='rating_3' class='rating3_".$show['id']."'><i class='fas fa-star'></i></label><input type='radio' name='ratings' id='rating_3' value='3'></li>
<li><label for='rating_4' class='rating4_".$show['id']."'><i class='fas fa-star'></i></label><input type='radio' name='ratings' id='rating_4' value='4'></li>
<li><label for='rating_5' class='rating5_".$show['id']."'><i class='fas fa-star'></i></label><input type='radio' name='ratings' id='rating_5' value='5'></li>
</ul>";
echo "".round($show['rating'])."";
$number= $show['rating'];
echo "<script language='javascript'>
if ($number>=1) {
$('.rating1_".$show['id']."').css({'color':'blue'});
}
if ($number>=2) {
$('.rating2_".$show['id']."').css({'color':'blue'});
}
if ($number>=3) {
$('.rating3_".$show['id']."').css({'color':'blue'});
}
if ($number>=4) {
$('.rating4_".$show['id']."').css({'color':'blue'});
}
if ($number>=5) {
$('.rating5_".$show['id']."').css({'color':'blue'});
}
</script>
";
}
你也有多次相同的id,应该是:
echo "<li><label for='rating_1_".$show['id']."' class='rating1_".$show['id']."'><i class='fas fa-star'></i></label><input type='radio' name='ratings' id='rating_1_".$show['id']."' value='1'></li>"