2016-11-07 14 views
0

私は5ポイントの評価システムがあります評価を表示する方法を変更しようとしています。PHPループ評価バーエラー

評価されていない場合は、5ドットすべてが白になる前に、評価が青色になります。私はフォントワームのグリフでこれらのドットを表示します。それで、それらのうち5つを出力します。

しかし、私は5ポイントの評価が進捗バーを表示し、5ポイントが進捗の長さのパーセンテージとして使用されるように変更しようとしています。

申し訳ありません曖昧な場合は、必要に応じてさらに説明することができます。現在、すべてのバーと評価値が表示されますが、1回だけ表示されます。それで、それは私が望むように機能していません。

<?php if(count($languages) > 0) { ?> 

<div class="col-md-6"> 
    <ul class="no-bullets"> 

    <?php foreach($languages as $index => $language) { ?> 

     <li> 
      <span class="skillset-title"><?= $language->title; ?> (<?= $language->endorsement; ?>)</span> 
      <span class="skillset-rating"> 

      <?php 
      $levelpercentage = 0; 
      for($stars == 1; $stars <= 5; $stars++) { 

       if ($stars == 5): 

        echo $levelpercentage = 100; 

       elseif ($stars == 4): 

        echo $levelpercentage = 80; 

       elseif ($stars == 3): 

        echo $levelpercentage = 60; 

       elseif ($stars == 2): 

        echo $levelpercentage = 40; 

       elseif ($stars == 1): 

        echo $levelpercentage = 20; 

       endif; 

      ?> 

       <div class="progress-bar blue stripes"> 
        <span style="width: <?= ($language->level >= $stars) ? $levelpercentage : '0'; ?>%;"></span> 
       </div> 

      <?php } ?> 

      </span> 
     </li> 

     <?php if(ceil(count($languages)/2) == $index + 1) { ?> 

    </ul> 
</div> 
<div class="col-md-6"> 
    <ul class="no-bullets"> 

     <?php } ?> 

    <?php } ?> 

    </ul> 
</div> 

<?php } else { ?> 

<div class="alert alert-warning"> 
    No languages were found! 
</div> 

<?php } ?> 

答えて

0

それは、現在あなたがforループの中であなたのバーや評価値を割り当て、エコーためだすべてのバーと評価値

を表示します。

$stars変数には1から5までの各値が割り当てられ、各ステップでバーが表示されます。単純に(すでに$stars変数を定義して使用して)

ボーナスをごforループを削除し、それが正常に動作する必要があります:私は良い気分でいるので、私はあなたを伝えるために持っているよりも、あなたの$levelpercentage変数を構築するための簡単な方法がありますちょうど使用し、1〜5の各値のif...elseを使用して:

$levelpercentage = $stars * 20; 
0

ありがとうございました!それは本当に私を助けました。私がやろうとしていたことを単純化しようとしていた。これは私がやったことで、うまくいくようです。

<?php if(count($languages) > 0) { ?> 

<div class="col-md-6"> 
    <ul class="no-bullets"> 

    <?php foreach($languages as $index => $language) { $stars = 0; $stars <= 5; $stars++; ?> 

     <li> 
      <span class="skillset-title"><?= $language->title; ?> (<?= $language->endorsement; ?>)</span> 
      <span class="skillset-rating"> 
       <div class="progress-bar blue stripes"> 
        <span style="width: <?= ($language->level >= $stars) ? $language->level * 20 : 0; ?>%;"></span> 
       </div> 
      </span> 
     </li> 

     <?php if(ceil(count($languages)/2) == $index + 1) { ?> 

    </ul> 
</div> 
<div class="col-md-6"> 
    <ul class="no-bullets"> 

     <?php } ?> 

    <?php } ?> 

    </ul> 
</div> 

<?php } else { ?> 

<div class="alert alert-warning"> 
    No languages were found! 
</div> 

<?php } ?>