在下拉php mysql中列出枚举值

时间:2010-11-18 03:22:11

标签: php mysql enums

我有一个包含以下列的mysql表。

 Id     Name      Sex

和性别列有枚举类型('男','女','未指定')

如何在下拉列表中列出枚举值并将当前存储的值设为选定的

2 个答案:

答案 0 :(得分:11)

检查此链接...它非常棒......脚本可以重用于任何枚举列:

http://jadendreamer.wordpress.com/2011/03/16/php-tutorial-put-mysql-enum-values-into-drop-down-select-box/

答案 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>