Перечислите значения Enum в выпадающем списке php mysql - PullRequest
5 голосов
/ 18 ноября 2010

У меня есть таблица MySQL, которая содержит следующие столбцы.

 Id     Name      Sex

и пол столбца имеют тип enum («Мужской», «Женский», «Не указано»)

Как я могу перечислить значения перечисления в раскрывающемся списке и сделать текущее сохраненное значение выбранным

Ответы [ 2 ]

11 голосов
/ 17 августа 2012

Проверьте эту ссылку ... она довольно классная ... скрипт можно использовать для любого столбца enum:

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

5 голосов
/ 18 ноября 2010

Тот факт, что это поле перечисления, не имеет большого значения при создании полей выбора (выпадающих). Поля перечисления ведут себя так же, как поля ввода текста, они просто отклоняют любые данные, которые не соответствуют параметру перечисления, и сохраняют данные более эффективно. Таким образом, взаимодействие с полем enum аналогично взаимодействию с полем ввода текста.

Так что вам понадобится обычное поле выбора 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...