Example form is linked to a database table, but won't be saved in this example.
When you submit the form, the value is presented with debug_dump(), so strings are quoted and array values listed.
<?php $items = array( 'A' => 'Item A', 'B' => 'Item B', 'C' => 'Item C', 'D' => 'Item D', 'E' => 'Item E', ); $groups = array( 'B' => 'Group 1', 'C' => 'Group 1', 'D' => 'Group 2', 'E' => NULL, ); $field = new form_field_select($form, 'Items'); $field->db_field_set('items', 'key'); // Drop second parameter if you want to store the value $field->options_set($items); // Can be removed if using a database enum/set field $field->label_option_set(''); $field->required_error_set('An item is required.'); // $value = $this->value_get(); // $value = $this->value_key_get(); ?>