PHP/HTML 在 sql 查询的下拉列表中显示选定的选项
Posted
技术标签:
【中文标题】PHP/HTML 在 sql 查询的下拉列表中显示选定的选项【英文标题】:PHP/HTML Showing selected option in dropdown from sql query 【发布时间】:2017-06-15 03:53:04 【问题描述】:我不知道如何为我的问题命名,我基本上是在问是否有人知道更好的方法来解决这个问题。我在下面使用这个函数来显示从数据库中提取哪个选项,我想知道除了 elseif 每个 ID 之外是否有更紧凑的方法或更好的方法来做到这一点
function access_option($access)
if ($access == 0)
echo '<option value="0" selected>Member</option>
<option value="1">Streamer</option>
<option value="2">Moderator</option>
<option value="3">Manager</option>
<option value="4">Administrator</option>
<option value="5">Senior Administrator</option>';
elseif ($access == 1)
echo '<option value="0">Member</option>
<option value="1" selected>Streamer</option>
<option value="2">Moderator</option>
<option value="3">Manager</option>
<option value="4">Administrator</option>
<option value="5">Senior Administrator</option>';
elseif ($access == 2)
echo '<option value="0">Member</option>
<option value="1">Streamer</option>
<option value="2" selected>Moderator</option>
<option value="3">Manager</option>
<option value="4">Administrator</option>
<option value="5">Senior Administrator</option>';
elseif ($access == 3)
echo '<option value="0">Member</option>
<option value="1">Streamer</option>
<option value="2">Moderator</option>
<option value="3" selected>Manager</option>
<option value="4">Administrator</option>
<option value="5">Senior Administrator</option>';
elseif ($access == 4)
echo '<option value="0">Member</option>
<option value="1">Streamer</option>
<option value="2">Moderator</option>
<option value="3">Manager</option>
<option value="4" selected>Administrator</option>
<option value="5">Senior Administrator</option>';
elseif ($access == 5)
echo '<option value="0">Member</option>
<option value="1">Streamer</option>
<option value="2">Moderator</option>
<option value="3">Manager</option>
<option value="4">Administrator</option>
<option value="5" selected>Senior Administrator</option>';
这是最好的方法吗?
【问题讨论】:
【参考方案1】:您可以使用三元运算符减少重复次数:
function access_option($access)
echo '<option value="0"'.($access == 0 ? ' selected' : '').'>Member</option>';
echo '<option value="1"'.($access == 1 ? ' selected' : '').'>Streamer</option>';
echo '<option value="2"'.($access == 2 ? ' selected' : '').'>Moderator</option>';
echo '<option value="3"'.($access == 3 ? ' selected' : '').'>Manager</option>';
echo '<option value="4"'.($access == 4 ? ' selected' : '').'>Administrator</option>';
echo '<option value="5"'.($access == 5 ? ' selected' : '').'>Senior Administrator</option>';
【讨论】:
谢谢,这很有帮助,我一直在寻找 很高兴能帮上忙!【参考方案2】:您可以遍历保存在数组中的值,并动态设置所选值。这种方法可以方便以后通过调整数组来添加/删除选项-
function access_option($access)
$options = ["Member", "Streamer", "Moderator", "Manager", "Administrator", "Senior Administrator"];
foreach($options as $key=>$value)
echo '<option value="'.$key.'"'.($key==$access ? ' selected' : '').'>'.$value.'</option>';
【讨论】:
我喜欢这个解决方案【参考方案3】:如另一个答案所述,三元运算符将减小它的大小。您也可以使用 switch 语句。类似于 if 和 elseif 但更容易并且会减少您的代码。
例子:
<?php
function access_option($access)
switch ($access)
case 0: echo "access equals 0";
case 1: echo "access equals 1";
case 2: echo "access equals 2";
?>
【讨论】:
以上是关于PHP/HTML 在 sql 查询的下拉列表中显示选定的选项的主要内容,如果未能解决你的问题,请参考以下文章