PHP state picker options list maker

Here’s a static function I use in some of my PHP projects when I need to create a united states state picker.  It makes it really convenient to have an empty <select> in my form that wraps a $statelist variable containing my options.  The extra helpful part of this function is it can do selection for you if you pass in a state abbreviation.  Good for edit forms.

/**
 * Return an html options list full of states
 *
 * @param $selected_state string[optional]	abbreviation of state to select
 * @param $b_add_space bool[optional]		first option is blank
 * @return string
 */
public static function state_picker_options( $selected_state = "", $b_add_space=false )
{
	$states = array(
		'AL' => 'ALABAMA',
		'AK' => 'ALASKA',
		'AZ' => 'ARIZONA',
		'AR' => 'ARKANSAS',
		'CA' => 'CALIFORNIA',
		'CO' => 'COLORADO',
		'CT' => 'CONNECTICUT',
		'DE' => 'DELAWARE',
		'DC' => 'DISTRICT OF COLUMBIA',
		'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',
		'PR' => 'PUERTO RICO',
		'RI' => 'RHODE ISLAND',
		'SC' => 'SOUTH CAROLINA',
		'SD' => 'SOUTH DAKOTA',
		'TN' => 'TENNESSEE',
		'TX' => 'TEXAS',
		'UT' => 'UTAH',
		'VT' => 'VERMONT',
		'VI' => 'VIRGIN ISLANDS',
		'VA' => 'VIRGINIA',
		'WA' => 'WASHINGTON',
		'WV' => 'WEST VIRGINIA',
		'WI' => 'WISCONSIN',
		'WY' => 'WYOMING'
	);

	$s_options_list = "";

	//add blank state?
	if($b_add_space)
	{
		$s_options_list .= "<option value=''></option>";
	}

	//construct list
	foreach( $states as $st => $name )
	{
		if( strtolower($st) == strtolower( $selected_state ) )
		{
			$s_options_list .= "<option value='$st' selected> $name </option>";
		}
		else
		{
			$s_options_list .= "<option value='$st'> $name </option>";
		}
	}

	return $s_options_list;
}

About Eric Fickes

Independent Internet Consultant by day. Skateboarder, Bass player, Husband and Father by night. You can hire me to build internet powered solutions
This entry was posted in php and tagged , , , , , . Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>