【问题标题】:Multiple if statements in a foreach loopforeach 循环中的多个 if 语句
【发布时间】:2015-09-15 01:44:36
【问题描述】:

我的数据库中有 3 条评论,但不知何故,它只显示 3 条星级中的 1 条已选中,而其他 2 条评论的星级为空

@foreach($recensies as $recensie)

                <fieldset class="rating">
                    <input type="radio" disabled  @if($recensie->rating == 5) checked="checked" @endif name="rating" value="5" /><label class = "full" for="star5" title="Awesome - 5 stars"></label>
                    <input type="radio" disabled  @if($recensie->rating == '4 and a half') checked="checked" @endif name="rating" value="4 and a half" /><label class="half" for="star4half" title="Pretty good - 4.5 stars"></label>
                    <input type="radio" disabled  @if($recensie->rating == 4) checked="checked" @endif name="rating" value="4" /><label class = "full" for="star4" title="Pretty good - 4 stars"></label>
                    <input type="radio" disabled  @if($recensie->rating == '3 and a half') checked="checked" @endif name="rating" value="3 and a half" /><label class="half" for="star3half" title="Meh - 3.5 stars"></label>
                    <input type="radio" disabled  @if($recensie->rating == 3) checked="checked" @endif name="rating" value="3" /><label class = "full" for="star3" title="Meh - 3 stars"></label>
                    <input type="radio" disabled  @if($recensie->rating == '2 and a half') checked="checked" @endif name="rating" value="2 and a half" /><label class="half" for="star2half" title="Kinda bad - 2.5 stars"></label>
                    <input type="radio" disabled  @if($recensie->rating == 2) checked="checked" @endif name="rating" value="2" /><label class = "full" for="star2" title="Kinda bad - 2 stars"></label>
                    <input type="radio" disabled  @if($recensie->rating == '1 and a half') checked="checked" @endif name="rating" value="1 and a half" /><label class="half" for="star1half" title="Meh - 1.5 stars"></label>
                    <input type="radio" disabled  @if($recensie->rating == 1) checked="checked" @endif name="rating" value="1" /><label class = "full" for="star1" title="Sucks big time - 1 star"></label>
                    <input type="radio" disabled  @if($recensie->rating == 'half') checked="checked" @endif name="rating" value="half" /><label class="half" for="starhalf" title="Sucks big time - 0.5 stars"></label>
                </fieldset>

@endforeach

这是一张图片来告诉你我的意思。

【问题讨论】:

  • 这 3 个新近度的评分值是多少?也许你可以用$recensie-&gt;rating 输出它们?无论如何2 and a half 作为评级值对我来说看起来有点麻烦。为什么你不使用2.5 来代替?所以值类型是doublefloat 但不是string

标签: laravel if-statement foreach blade


【解决方案1】:

最好使用这样的星级评分系统:https://github.com/kartik-v/bootstrap-star-rating

那么您将只在@foreach 中使用一个输入:

<input id="input-id" type="number" class="rating" min=0 max=5 step=0.5 data-size="lg">

然后调用:

$('#input-id').rating('update', {{ $recensie->rating }});

当然,就像 Peh 所说,您应该使用 2.5 之类的值,而不是 2 and a half

您还想为每个输入设置不同的 ID。

【讨论】:

    猜你喜欢
    • 2014-02-11
    • 2021-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-23
    • 1970-01-01
    相关资源
    最近更新 更多