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 查询的下拉列表中显示选定的选项的主要内容,如果未能解决你的问题,请参考以下文章

C#中combobox如何实现模糊查询,并能自动显示下拉列表

C# 模糊查询带出下拉列表的问题

php中sql查询的列名

JS调用后台数据查询,让查询到的数据在下拉列表里显示

联接 SQL 查询未能填充下拉列表

根据单选按钮选择将下拉菜单的值和显示名称更改为 SQL 查询结果