2012-01-13 35 views
0

我正在为一个站点创建一个管理菜单,我有几个下拉列表需要为每个不同的字段创建,每个记录的默认选定选项不同(这与phpBB中的权限管理面板非常相似)。换句话说,我有一个表列出了用户可能属于的所有组,并且每行都有用于更改该组权限的选择菜单。我目前正在使用的功能为每个不同的套餐的,看起来像这样:在PHP中使用默认从MySQL中选择的缺省值创建选择菜单db

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

我一直在努力,因为我需要在实现这个很多倍找出这样做的更加流线型的方式我网站,但我一直无法这样做。有没有更好的方法做到这一点,我可以简单地传递一个数组的选项需要到一个函数,然后从数据库回声一个值,从数组中删除它,然后回应其余的选项?

回答

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完成,可以可读性

+0

谢谢扩大!工作很棒! – Ethan 2012-01-13 20:04:40