在PHP中创建一个选择菜单,默认选自MySQL db

时间:2012-01-13 19:35:45

标签: php mysql html

我正在为网站创建一个管理菜单,我有几个下拉列表需要为每个不同的字段创建,默认选择的选项对于出现的每个记录都是不同的(这与权限管理员非常相似) phpBB中的面板)。换句话说,我有一个表列出了用户可以属于的所有组,并且每行都有用于更改该组权限的选择菜单。我目前正在为每个不同的菜单集使用函数,如下所示:

function rfiPermissions($x){
$query = "SELECT rfi_permission FROM groups WHERE id = '$x'";
$result = mysql_query($query) or die();
$row = mysql_fetch_array($result);
$perm = $row[0];
$option = array();
$option[0] = "<option value='0'>None</option>";
$option[1] = "<option value='1'>Basic</option>";
$option[2] = "<option value='2'>Supplemental</option>";
$option[3] = "<option value='3'>Full</option>";
switch($perm){
    case 0:
        echo $option[0].$option[1].$option[2].$option[3];
        break;
    case 1:
        echo $option[1].$option[0].$option[2].$option[3];
        break;
    case 2:
        echo $option[2].$option[1].$option[0].$option[3];
        break;
    default:
        echo $option[3].$option[1].$option[0].$option[2];
        break;
}
}

我一直在尝试找出一种更流线型的方法,因为我需要在我的网站中多次实现这一点,但我无法这样做。有没有更好的方法,我可以简单地将一个选项需要的数组传递给一个函数,然后从数据库中回显一个值,从数组中删除它,然后回显其余的选项? / p>

1 个答案:

答案 0 :(得分:1)

使用php设置所选属性比更改顺序更容易。另外,作为一个用户,我喜欢一致性,如果我查看下拉菜单,每次看到它时订单都会改变,我会很沮丧。

$option[0] = "<option value='0' ".($perm==0 ? " selected " : "") .">None</option>";
$option[1] = "<option value='1' ".($perm==1 ? " selected " : "") .">Basic</option>";
$option[2] = "<option value='2' ".($perm==2 ? " selected " : "") .">Supplemental</option>";
$option[3] = "<option value='3' ".($perm==3 ? " selected " : "") .">Full</option>";

这是在if short hand中完成的,可以扩展以便于阅读