如何从数据库中检索并呈现唯一选定的下拉值(How to Retrieve and Render Uniquely Selected Dropdown Values from the Database)

编程入门 行业动态 更新时间:2024-10-25 22:25:36
如何从数据库中检索并呈现唯一选定的下拉值(How to Retrieve and Render Uniquely Selected Dropdown Values from the Database)

在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>'; } }

更多推荐

本文发布于:2023-07-04 16:52:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1026862.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:数据库中   Render   Retrieve   Uniquely   Database

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!