首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将星级降至5

将星级降至5
EN

Stack Overflow用户
提问于 2019-03-15 20:29:51
回答 2查看 34关注 0票数 0

我正在尝试改变我网站上的评级视图,它显示了7颗星,你可以在下面的图像中看到

这是分级过滤器的代码

代码语言:javascript
运行
复制
<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";}?>>&nbsp;&nbsp;<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";}?>>&nbsp;&nbsp;<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";}?>>&nbsp;&nbsp;<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";}?>>&nbsp;&nbsp;<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";}?>>&nbsp;&nbsp;<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颗星,我该怎么做呢?

EN

回答 2

Stack Overflow用户

发布于 2019-03-15 20:32:57

将所有后续的for循环(打印出空白星号)更改为:

代码语言:javascript
运行
复制
for (;$i<=5;$i++)

也就是说,不重置$i的值,那么您将为任何行打印最多5颗星。

因此,以行3为例:

代码语言:javascript
运行
复制
<div class="go-right"><input id="3" type="radio" name="stars" class="radio" value="3"
<?php if(@$_GET['stars'] == "3"){echo " checked";}?>>&nbsp;&nbsp;
<label class="go-left" for="3">
<?php for ($i=1; $i<=3; $i++) { echo $star; } 
      for (    ; $i<=5; $i++) { echo $stars; } ?>
</label>
</div>

您可以对所有行使用此代码,方法是创建一个循环:

代码语言:javascript
运行
复制
<?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";}?>>&nbsp;&nbsp;
  <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 } ?>

Demo on 3v4l.org

票数 2
EN

Stack Overflow用户

发布于 2019-03-15 20:31:49

只要删除不必要的代码即可。

代码语言:javascript
运行
复制
<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";}?>>&nbsp;&nbsp;<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";}?>>&nbsp;&nbsp;<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";}?>>&nbsp;&nbsp;<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提供的答案。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55182661

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档