我有一个包含以下列的mysql表。
Id Name Sex
和性别列有枚举类型('男','女','未指定')
如何在下拉列表中列出枚举值并将当前存储的值设为选定的
答案 0 :(得分:11)
检查此链接...它非常棒......脚本可以重用于任何枚举列:
答案 1 :(得分:5)
创建选择(下拉)字段时,它是一个枚举字段并不重要。枚举字段的行为与文本输入字段相同,它们只是拒绝任何与枚举选项不匹配的数据并更有效地存储数据。因此,与枚举字段交互与与文本输入字段交互相同。
所以你需要一个普通的html选择字段:
<form>
<select name="gender">
<option value="Unspecified">Unspecified</option>
<option value="Male">Male</option>
<option value="Female">Female</option
</select>
</form>
您需要选择自己的价值:
<form>
<select name="gender">
<option value="Unspecified" <?php if($gender == "Unspecified") { echo "SELECTED"; } ?>>Unspecified</option>
<option value="Male" <?php if($gender == "Male") { echo "SELECTED"; } ?>>Male</option>
<option value="Female" <?php if($gender == "Female") { echo "SELECTED"; } ?>>Female</option
</select>
</form>
这可以分解为函数:
function gender_select($default_value='') {
$select = '<select name="gender">';
$options = array('Unspecified','Male','Female',);
foreach($options as $option) {
$select .= write_option($option, $option, $default_value);
}
$select .= '</select>';
return $select;
}
function write_option($value, $display, $default_value='') {
$option = '<option value="'.$value.'"';
$option .= ($default_value == $value) ? ' SELECTED' : '';
$option .= '>'.$display.'</option>';
return $option;
}
所以你的最终代码是:
<form>
<?php echo $gender_select($gender); ?>
</form>