2017-07-19 9 views
0

PHPでは、現在の優先順位($ priority)とデータベースからの優先順位の動的リストのクエリを実行しています。私が解決しようとしている問題は、現在選択されていないドロップダウンの値のみを表示する方法です。たとえば、データベースの優先度値が「低」である場合、whileループがドロップダウン・オプションをレンダリングするときに、「低」はすでに選択されているとしてもドロップダウン・リストに表示されます(重複として表示されますリスト内の)。 UXの観点からは、私はむしろ選択された値と現在選択されていない値を参照したいでしょう。ご協力ありがとうございました。データベースから一意に選択されたドロップダウン値を取得してレンダリングする方法

enter image description here

  <select class="form-control" id="priority" name="priority" id="priority"> 
      <option selected="<?php echo $query2['priority']; ?>. selected"><?php echo $query2['priority']; ?></option> 
      <?php 
       $priority = $query2['priority']; 
       $query3=mysqli_query($con, "SELECT DISTINCT priority FROM todo ORDER BY priority ASC"); 

       while($listOfPrioritiesVal=mysqli_fetch_array($query3)){ 
       if ($priority == $listOfPrioritiesVal['priority']) { 
        echo ""; 
       } 

       else { 
        echo '<option value="'.$listOfPrioritiesVal['priority'].'">'.$listOfPrioritiesVal['priority'].'</option>'; 
       } 
       } 
      ?> 
      </select> 
+0

これを試してみてください。<?オプション選択は= "選択">

答えて

0

あなたはすでにあなただけ何もせずにループを続けることができ、選択した値のため<option>タグを持っているので。

while($listOfPrioritiesVal=mysqli_fetch_array($query3)){ 

    if ($priority === $listOfPrioritiesVal['priority']) { 
     continue; 
    }else{ 
     echo '<option value="'.$listOfPrioritiesVal['priority'].'">'.$listOfPrioritiesVal['priority'].'</option>'; 
    } 
} 

しかし、私は次のようなものを提案します。

// Remove your very first `<option>` tag. 
while($listOfPrioritiesVal=mysqli_fetch_array($query3)){ 

    if ($priority === $listOfPrioritiesVal['priority']) { 

     <option selected="selected"><?php echo $priority; ?></option> 

    }else{ 

     echo '<option value="'.$listOfPrioritiesVal['priority'].'">'.$listOfPrioritiesVal['priority'].'</option>'; 
    } 
} 
関連する問題