在PHP中,我正在查询当前优先级($ priority)以及数据库中的动态优先级列表。 我想解决的问题是如何仅显示当前未选中的下拉列表中的值。 例如,如果数据库中的优先级值为'低',当while循环显示下拉选项时,'low'仍然在下拉列表中,即使它已被列为选中状态(显示为重复在列表中)。 从用户体验角度来看,我宁愿看到选定的值,然后看到当前未选择的值。 感谢您的帮助。
<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>
In PHP I am doing a query for the current priority ($priority) and a dynamic list of priorities from the database. The problem I am trying to solve is how to only show values in the dropdown not currently selected. For instance, if the priority value in the database is 'low', when the while loop goes through to render dropdown options, 'low' is still in the drop down list even though it is already listed as being selected (appears as a duplicate in the list). From a UX perspective, I'd rather see the selected value and then the values not currently selected. Thank you for your help.
<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>最满意答案
既然你已经有了一个用于所选值的<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>'; } }Since you already have a <option> tag for the selected value you could just continue the loop without doing anything.
while($listOfPrioritiesVal=mysqli_fetch_array($query3)){ if ($priority === $listOfPrioritiesVal['priority']) { continue; }else{ echo '<option value="'.$listOfPrioritiesVal['priority'].'">'.$listOfPrioritiesVal['priority'].'</option>'; } }But i would suggest something like follows.
// 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>'; } }更多推荐
发布评论