To create a drop down that displays text but records a number, consider the following field array: $select_no_yes = array('0' => 'No', '1' => 'Yes'); $opts['fdd']['hidden'] = array( 'default' => '0', 'help|ACP' => 'Select', 'input' => '', 'maxlen' => 1, 'name' => 'Hidden', 'options' => 'ACPVDFL', 'required' => false, 'select' => 'D', 'sort' => true, 'values2' => $select_no_yes ); ----- The following example illustrates post-initialization of the 'values2' array. Readability is sometimes be enhanced by post-initializing the 'values2' array. $opts['fdd']['hidden'] = array( 'default' => '0', 'help|ACP' => 'Select', 'input' => '', 'maxlen' => 1, 'name' => 'Hidden', 'options' => 'ACPVDFL', 'required' => false, 'select' => 'D', 'sort' => true ); $opts['fdd']['hidden']['values2'] = array('0' => 'No', '1' => 'Yes'); ----- Examples of post-initialized drop downs follow. $opts['fdd']['col_name']['values2'] = array( 'N' => 'No', 'Y' => 'Yes', ); $opts['fdd']['col_name']['values2'] = array( '0' => 'Public', '1' => 'Private' ); $opts['fdd']['col_name']['values2'] = array( '0' => 'Uncategorized', '1' => 'First Class', '2' => 'Second Class', '3' => 'Third Class' ); $opts['fdd']['col_name']['values2'] = array( '' => '', 'AL' => 'Alabama', 'AK' => 'Alaska', 'AZ' => 'Arizona', 'AR' => 'Arkansas', 'CA' => 'California', 'CO' => 'Colorado', 'CT' => 'Connecticut', 'DC' => 'Dist. of Columbia', 'DE' => 'Delaware', 'FL' => 'Florida', 'GA' => 'Georgia', 'HI' => 'Hawaii', 'ID' => 'Idaho', 'IL' => 'Illinois', 'IN' => 'Indiana', 'IA' => 'Iowa', 'KS' => 'Kansas', 'KY' => 'Kentucky', 'LA' => 'Louisiana', 'ME' => 'Maine', 'MD' => 'Maryland', 'MA' => 'Massachusetts', 'MI' => 'Michigan', 'MN' => 'Minnesota', 'MS' => 'Mississippi', 'MO' => 'Missouri', 'MT' => 'Montana', 'NE' => 'Nebraska', 'NV' => 'Nevada', 'NH' => 'New Hampshire', 'NJ' => 'New Jersey', 'NM' => 'New Mexico', 'NY' => 'New York', 'NC' => 'North Carolina', 'ND' => 'North Dakota', 'OH' => 'Ohio', 'OK' => 'Oklahoma', 'OR' => 'Oregon', 'PA' => 'Pennsylvania', 'RI' => 'Rhode Island', 'SC' => 'South Carolina', 'SD' => 'South Dakota', 'TN' => 'Tennessee', 'TX' => 'Texas', 'UT' => 'Utah', 'VT' => 'Vermont', 'VA' => 'Virginia', 'WA' => 'Washington', 'WV' => 'West Virginia', 'WI' => 'Wisconsin', 'WY' => 'Wyoming' ); $opts['fdd']['col_name']['values2'] = array( '0' => 'Sunday', '1' => 'Monday', '2' => 'Tuesday', '3' => 'Wednesday', '4' => 'Thursday', '5' => 'Friday', '6' => 'Saturday' ); If the same array for 'values2' will be used multiple times in your form, consider creating it in a way that will enhance readability when it's applied. $yn = array( '0' => 'No', '1' => 'Yes' ); $opts['fdd']['col_name']['values2'] = $yn; ----- /* CREATE TABLE IF NOT EXISTS `cc_balance` ( `id` tinyint(4) NOT NULL auto_increment, `creditor` smallint(6) NOT NULL, `amount` float(8,2) NOT NULL, `mo_` char(2) NOT NULL, `da_` char(2) NOT NULL, `yr_` char(4) NOT NULL, PRIMARY KEY (`id`), KEY `creditor` (`creditor`), KEY `yr_` (`yr_`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; */ $opts['fdd']['id'] = array( 'css' => array('postfix' => 'right-justify'), 'default' => '', 'input' => 'R', 'maxlen' => 4, 'name' => 'Id', 'options' => 'VD', 'required' => true, 'select' => 'T', 'size|ACP' => 4, 'sort' => true ); // MySQL column 0: int - tinyint(4) // Records the `contact_id` from the `contacts` table as `creditor` in the main table. // Displays a drop down list containing `company` names found in the `contacts` table. // Displays only those records categorized as a Creditor in the `contacts` table. // Sorts the list alphabetically. $opts['fdd']['creditor'] = array( 'default' => '', 'input' => '', 'maxlen' => 2, 'name' => 'Creditor', 'options' => 'ACPVDFL', 'required' => true, 'select' => 'D', 'size|ACP' => 2, 'sqlw' => 'TRIM("$val_as")', 'sort' => true, 'values' => array( 'table' => 'contacts', 'column' => 'contact_id', 'description'=> array( 'columns' => array('0' => 'company'), ), 'filters' => 'category = "Creditor" AND category <> ""', 'orderby' => 'company' ) ); $opts['fdd']['amount'] = array( 'css' => array('postfix' => 'right-justify'), 'default' => '', 'input' => '', 'maxlen' => 11, 'number_format' => array(2, '.', ','), 'name' => 'Amount', 'options' => 'ACPVDFL', 'required' => true, 'select' => 'T', 'size|ACP' => 8, 'sqlw' => 'TRIM("$val_as")', 'sort' => true ); $opts['fdd']['mo_'] = array( 'css' => array('postfix' => 'right-justify'), 'default' => date('m'), 'input' => '', 'maxlen' => 2, 'name' => 'MO', 'options' => 'ACPVDFL', 'required' => false, 'select' => 'D', 'size|ACP' => 2, 'sqlw' => 'TRIM("$val_as")', 'sort' => true, 'values2' => array( '01' => 'Jan', '02' => 'Feb', '03' => 'Mar', '04' => 'Apr', '05' => 'May', '06' => 'Jun', '07' => 'Jul', '08' => 'Aug', '09' => 'Sep', '10' => 'Oct', '11' => 'Nov', '12' => 'Dec' ) ); $opts['fdd']['da_'] = array( 'css' => array('postfix' => 'right-justify'), 'default' => date('d'), 'input' => '', 'maxlen' => 2, 'name' => 'DA', 'options' => 'ACPVDFL', 'required' => false, 'select' => 'T', 'size|ACP' => 2, 'sqlw' => 'TRIM("$val_as")', 'sort' => true, 'mask' => '%02d', 'values' => array('', '01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22', '23', '24', '25', '26', '27', '28', '29', '30', '31') ); $opts['fdd']['yr_'] = array( 'css' => array('postfix' => 'right-justify'), 'default' => date('Y'), 'input' => '', 'maxlen' => 4, 'name' => 'YR', 'options' => 'ACPVDFL', 'required' => false, 'select' => 'D', 'size|ACP' => 4, 'sqlw' => 'TRIM("$val_as")', 'sort' => true, 'values' => range(date('Y')-1, date('Y') + 5) ); ----- $hours = array( '' => 'TBD', '01:00:00' => '1:00 AM', '01:15:00' => '1:15 AM', '01:30:00' => '1:30 AM', '01:45:00' => '1:45 AM', '02:00:00' => '2:00 AM', '02:15:00' => '2:15 AM', '02:30:00' => '2:30 AM', '02:45:00' => '2:45 AM', '03:00:00' => '3:00 AM', '03:15:00' => '3:15 AM', '03:30:00' => '3:30 AM', '03:45:00' => '3:45 AM', '04:00:00' => '4:00 AM', '04:15:00' => '4:15 AM', '04:30:00' => '4:30 AM', '04:45:00' => '4:45 AM', '05:00:00' => '5:00 AM', '05:15:00' => '5:15 AM', '05:30:00' => '5:30 AM', '05:45:00' => '5:45 AM', '06:00:00' => '6:00 AM', '06:15:00' => '6:15 AM', '06:30:00' => '6:30 AM', '06:45:00' => '6:45 AM', '07:00:00' => '7:00 AM', '07:15:00' => '7:15 AM', '07:30:00' => '7:30 AM', '07:45:00' => '7:45 AM', '08:00:00' => '8:00 AM', '08:15:00' => '8:15 AM', '08:30:00' => '8:30 AM', '08:45:00' => '8:45 AM', '09:00:00' => '9:00 AM', '09:15:00' => '9:15 AM', '09:30:00' => '9:30 AM', '09:45:00' => '9:45 AM', '10:00:00' => '10:00 AM', '10:15:00' => '10:15 AM', '10:30:00' => '10:30 AM', '10:45:00' => '10:45 AM', '11:00:00' => '11:00 AM', '11:15:00' => '11:15 AM', '11:30:00' => '11:30 AM', '11:45:00' => '11:45 AM', '12:00:00' => '12:00 PM', '12:15:00' => '12:15 PM', '12:30:00' => '12:30 PM', '12:45:00' => '12:45 PM', '13:00:00' => '1:00 PM', '13:15:00' => '1:15 PM', '13:30:00' => '1:30 PM', '13:45:00' => '1:45 PM', '14:00:00' => '2:00 PM', '14:15:00' => '2:15 PM', '14:30:00' => '2:30 PM', '14:45:00' => '2:45 PM', '15:00:00' => '3:00 PM', '15:15:00' => '3:15 PM', '15:30:00' => '3:30 PM', '15:45:00' => '3:45 PM', '16:00:00' => '4:00 PM', '16:15:00' => '4:15 PM', '16:30:00' => '4:30 PM', '16:45:00' => '4:45 PM', '17:00:00' => '5:00 PM', '17:15:00' => '5:15 PM', '17:30:00' => '5:30 PM', '17:45:00' => '5:45 PM', '18:00:00' => '6:00 PM', '18:15:00' => '6:15 PM', '18:30:00' => '6:30 PM', '18:45:00' => '6:45 PM', '19:00:00' => '7:00 PM', '19:15:00' => '7:15 PM', '19:30:00' => '7:30 PM', '19:45:00' => '7:45 PM', '20:00:00' => '8:00 PM', '20:15:00' => '8:15 PM', '20:30:00' => '8:30 PM', '20:45:00' => '8:45 PM', '21:00:00' => '9:00 PM', '21:15:00' => '9:15 PM', '21:30:00' => '9:30 PM', '21:45:00' => '9:45 PM', '22:00:00' => '10:00 PM', '22:15:00' => '10:15 PM', '22:30:00' => '10:30 PM', '22:45:00' => '10:45 PM', '23:00:00' => '11:00 PM', '23:15:00' => '11:15 PM', '23:30:00' => '11:30 PM', '23:45:00' => '11:45 PM', '24:00:00' => '12:00 PM', '24:15:00' => '12:15 PM', '24:30:00' => '12:30 PM', '24:45:00' => '12:45 PM' );