Skip to content

Instantly share code, notes, and snippets.

@ccagle8
Created July 11, 2013 01:48
Show Gist options
  • Save ccagle8/5971865 to your computer and use it in GitHub Desktop.
Save ccagle8/5971865 to your computer and use it in GitHub Desktop.
PHP generated United States Dropdown
<?php
/**
* States Dropdown
*
* Required the use of the SQL provided
*
* @uses check_select
* @param string $post, the one to make "selected"
* @param string $type, by default it shows abbreviations.
* 'abbrev' - <option value="PA">PA</option>
* 'name' - <option value="Pennsylvania">Pennsylvania</option>
* 'mixed' - <option value="PA">Pennsylvania</option>
* @return string
*/
function StateDropdown($post=null, $type='abbrev') {
$states = array(
array('AK', 'Alaska'),
array('AL', 'Alabama'),
array('AR', 'Arkansas'),
array('AZ', 'Arizona'),
array('CA', 'California'),
array('CO', 'Colorado'),
array('CT', 'Connecticut'),
array('DC', 'District of Columbia'),
array('DE', 'Delaware'),
array('FL', 'Florida'),
array('GA', 'Georgia'),
array('HI', 'Hawaii'),
array('IA', 'Iowa'),
array('ID', 'Idaho'),
array('IL', 'Illinois'),
array('IN', 'Indiana'),
array('KS', 'Kansas'),
array('KY', 'Kentucky'),
array('LA', 'Louisiana'),
array('MA', 'Massachusetts'),
array('MD', 'Maryland'),
array('ME', 'Maine'),
array('MI', 'Michigan'),
array('MN', 'Minnesota'),
array('MO', 'Missouri'),
array('MS', 'Mississippi'),
array('MT', 'Montana'),
array('NC', 'North Carolina'),
array('ND', 'North Dakota'),
array('NE', 'Nebraska'),
array('NH', 'New Hampshire'),
array('NJ', 'New Jersey'),
array('NM', 'New Mexico'),
array('NV', 'Nevada'),
array('NY', 'New York'),
array('OH', 'Ohio'),
array('OK', 'Oklahoma'),
array('OR', 'Oregon'),
array('PA', 'Pennsylvania'),
array('PR', 'Puerto Rico'),
array('RI', 'Rhode Island'),
array('SC', 'South Carolina'),
array('SD', 'South Dakota'),
array('TN', 'Tennessee'),
array('TX', 'Texas'),
array('UT', 'Utah'),
array('VA', 'Virginia'),
array('VT', 'Vermont'),
array('WA', 'Washington'),
array('WI', 'Wisconsin'),
array('WV', 'West Virginia'),
array('WY', 'Wyoming')
);
$options = '<option value=""></option>';
foreach ($states as $state) {
if ($type == 'abbrev') {
$options .= '<option value="'.$state[0].'" '. check_select($post, $state[0], false) .' >'.$state[0].'</option>'."\n";
} elseif($type == 'name') {
$options .= '<option value="'.$state[1].'" '. check_select($post, $state[1], false) .' >'.$state[1].'</option>'."\n";
} elseif($type == 'mixed') {
$options .= '<option value="'.$state[0].'" '. check_select($post, $state[0], false) .' >'.$state[1].'</option>'."\n";
}
}
echo $options;
}
/**
* Check Select Element
*
* @param string $i, POST value
* @param string $m, input element's value
* @param string $e, return=false, echo=true
* @return string
*/
function check_select($i = '',$m = '',$e=true) {
if ($i != null) {
if ( $i == $m ) {
$var = ' selected="selected" ';
} else {
$var = '';
}
} else {
$var = '';
}
if(!$e) {
return $var;
} else {
echo $var;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment