我正在尝试改变我网站上的评级视图,它显示了7颗星,你可以在下面的图像中看到
这是分级过滤器的代码
<div class="rating" style="font-size: 14px;">
<div class="go-right"><input id="1" type="radio" name="stars" class="go-right radio" value="1" <?php if(@$_GET['stars'] == "1"){echo "checked";}?>> <label class="go-left" for="1"><?php echo $star; ?><?php for($i=1;$i<=6;$i++){ ?> <?php echo $stars; ?> <?php } ?></label></div>
<div class="clearfix"></div>
<div class="go-right"><input id="2" type="radio" name="stars" class="radio go-right" value="2" <?php if(@$_GET['stars'] == "2"){echo "checked";}?>> <label class="go-left" for="2"><?php for($i=1;$i<=2;$i++){ ?> <?php echo $star; ?> <?php } ?><?php for($i=1;$i<=5;$i++){ ?> <?php echo $stars; ?> <?php } ?></label></div>
<div class="clearfix"></div>
<div class="go-right"><input id="3" type="radio" name="stars" class="radio" value="3" <?php if(@$_GET['stars'] == "3"){echo "checked";}?>> <label class="go-left" for="3"><?php for($i=1;$i<=3;$i++){ ?> <?php echo $star; ?> <?php } ?><?php for($i=1;$i<=4;$i++){ ?> <?php echo $stars; ?> <?php } ?></label></div>
<div class="clearfix"></div>
<div class="go-right"><input id="4" type="radio" name="stars" class="radio" value="4" <?php if(@$_GET['stars'] == "4"){echo "checked";}?>> <label class="go-left" for="4"><?php for($i=1;$i<=4;$i++){ ?> <?php echo $star; ?> <?php } ?><?php for($i=1;$i<=3;$i++){ ?> <?php echo $stars; ?> <?php } ?></label></div>
<div class="clearfix"></div>
<div class="go-right"><input id="5" type="radio" name="stars" class="radio" value="5" <?php if(@$_GET['stars'] == "5"){echo "checked";}?>> <label class="go-left" for="5"><?php for($i=1;$i<=5;$i++){ ?> <?php echo $star; ?> <?php } ?><?php for($i=1;$i<=2;$i++){ ?> <?php echo $stars; ?> <?php } ?></label></div>
<div class="clearfix"></div>
我只想显示5颗星,而不是7颗星,我该怎么做呢?
发布于 2019-03-15 20:32:57
将所有后续的for循环(打印出空白星号)更改为:
for (;$i<=5;$i++)
也就是说,不重置$i
的值,那么您将为任何行打印最多5颗星。
因此,以行3为例:
<div class="go-right"><input id="3" type="radio" name="stars" class="radio" value="3"
<?php if(@$_GET['stars'] == "3"){echo " checked";}?>>
<label class="go-left" for="3">
<?php for ($i=1; $i<=3; $i++) { echo $star; }
for ( ; $i<=5; $i++) { echo $stars; } ?>
</label>
</div>
您可以对所有行使用此代码,方法是创建一个循环:
<?php for ($s = 1; $s <= 5; $s++) { ?>
<div class="go-right"><input id="<?php echo $s; ?>" type="radio" name="stars" class="radio" value="<?php echo $s; ?>"
<?php if(@$_GET['stars'] == $s){echo " checked";}?>>
<label class="go-left" for="<?php echo $s; ?>">
<?php for ($i=1; $i<=$s; $i++) { echo $star; }
for ( ; $i<=5; $i++) { echo $stars; } ?>
</label>
</div>
<div class="clearfix"></div>
<?php } ?>
发布于 2019-03-15 20:31:49
只要删除不必要的代码即可。
<div class="rating" style="font-size: 14px;">
<div class="go-right"><input id="1" type="radio" name="stars" class="go-right radio" value="1" <?php if(@$_GET['stars'] == "1"){echo "checked";}?>> <label class="go-left" for="1"><?php echo $star; ?><?php for($i=1;$i<=6;$i++){ ?> <?php echo $stars; ?> <?php } ?></label></div>
<div class="clearfix"></div>
<div class="go-right"><input id="2" type="radio" name="stars" class="radio go-right" value="2" <?php if(@$_GET['stars'] == "2"){echo "checked";}?>> <label class="go-left" for="2"><?php for($i=1;$i<=2;$i++){ ?> <?php echo $star; ?> <?php } ?><?php for($i=1;$i<=5;$i++){ ?> <?php echo $stars; ?> <?php } ?></label></div>
<div class="clearfix"></div>
<div class="go-right"><input id="3" type="radio" name="stars" class="radio" value="3" <?php if(@$_GET['stars'] == "3"){echo "checked";}?>> <label class="go-left" for="3"><?php for($i=1;$i<=3;$i++){ ?> <?php echo $star; ?> <?php } ?><?php for($i=1;$i<=4;$i++){ ?> <?php echo $stars; ?> <?php } ?></label></div>
<div class="clearfix"></div>
stars是用PHP实现的,所以你需要修改$stars
php代码,并将你的i
减少到想要的数量。检查@nick提供的答案。
https://stackoverflow.com/questions/55182661
复制相似问题