PHP/HTML 在 sql 查询的下拉列表中显示选定的选项

标签 php html mysql

我不确定如何为我的问题命名,我基本上是在问是否有人知道解决这个问题的更好方法。我在下面使用这个函数来显示从数据库中提取了哪个选项,我想知道除了 elseif each 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>';
    }
}

这是最好的方法吗?

最佳答案

您可以使用三元运算符减少重复次数:

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

关于PHP/HTML 在 sql 查询的下拉列表中显示选定的选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41928309/

相关文章:

php - 如何在 Symfony 2 表单中验证日期时间格式 "yyyy-MM-ddTHH:mm:ss.sssZ"

php - 如何在android webview中保持网站 session

html - 变换旋转属性占用原始空间

javascript - jQuery 附加选择选项 - 选择不起作用

mysql - 更新 MySQL 数据库时出错 : DUPLICATE DEFAULT ENTRY FOR PRIMARY KEY = '0'

php - 网站截图

php - 在 WooCommerce 管理订单列表中添加自定义操作按钮

java - 为什么当我放置 .jsp 时 Tomcat 工作正常,但放置 .html 时不起作用?

mysql - 如何在 Excel CSV 中保留日期和引号的 SQL 格式?

mysql - 备份失效的 MySQL 服务器