Lasso Soft Inc. > Home

[c5_stateselect]

Linkc5_stateselect
AuthorJason Huck
CategoryUtility
Version8.x
Licensehttp://opensource.org/licenses/artistic-license.php
Posted16 Jan 2006
Updated19 Jan 2006
More by this author...

Description

This tag creates an HTML <select> element for forms containing any combination of US States, US Territories, and/or Canadian Provinces. You can specify the order in which the lists appear or choose to sort all the options together in a master list. You may also choose to use either the full name or the abbreviation for both the value and the label for each <option> element. Requires [array_flip] and [array_sortpairs].

Sample Usage

c5_stateselect(
	-inputname='state',
	-editvalue='OH',
	-lists=array('states', 'territories', 'provinces'),
	-values='short',
	-labels='long',
	-sorted
);

Source Code

Click the "Download" button below to retrieve a copy of this tag, including the complete documentation and sample usage shown on this page. Place the downloaded ".inc" file in your LassoStartup folder, restart Lasso, and you can begin using this tag immediately.

define_tag(
	'stateselect',
	-namespace='c5_',
	-priority='replace',
	-required='inputname',
	-type='string',
	-optional='editvalue',
	-type='string',
	-optional='values',
	-type='string',
	-optional='labels',
	-type='string',
	-optional='lists',
	-type='array',
	-optional='sorted',
	-description='Creates a pulldown list of US states and/or Canadian provinces.'
);
	// set defaults
	!local_defined('editvalue') ? local('editvalue' = '');
	!local_defined('values') ? local('values' = 'short');
	!local_defined('labels') ? local('labels' = 'short');
	!local_defined('lists') ? local('lists') = array('states');
	!local_defined('sorted') ? local('sorted' = false) | local('sorted' = true);
	
	local('states') = array(
		'AL' = 'Alabama',
		'AK' = 'Alaska',
		'AZ' = 'Arizona',
		'AR' = 'Arkansas',
		'CA' = 'California',
		'CO' = 'Colorado',
		'CT' = 'Connecticut',
		'DC' = 'District 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'
	);

	local('provinces') = array(
		'AB' = 'Alberta',
		'BC' = 'British Columbia',
		'MB' = 'Manitoba',
		'NF' = 'Newfoundland',
		'NB' = 'New Brunswick',
		'NT' = 'Northwest Territories',
		'NS' = 'Nova Scotia',
		'ON' = 'Ontario',
		'PE' = 'Prince Edward Island',
		'QC' = 'Quebec',
		'SK' = 'Saskatchewan',
		'YT' = 'Yukon'
	);	
	
	local('territories') = array(
		'AS' = 'American Samoa',
		'FM' = 'Fed. Micronesia',
		'GU' = 'Guam',
		'MH' = 'Marshall Island',
		'MP' = 'N. Mariana Is.',
		'PW' = 'Palau Island',
		'PR' = 'Puerto Rico',
		'VI' = 'Virgin Islands'
	);
			
	local('headers') = map(
		'states' = '-- US States --',
		'provinces' = '-- Canadian Provinces --',
		'territories' = '-- US Territories --'
	);
	
	if(#values == 'long');
		iterate(#lists, local('i'));
			local(#i) = array_flip(local(#i));
		/iterate;
	/if;
	
	if(#lists->size > 1);
		local('combined' = array);
		
		iterate(#lists, local('i'));
			!#sorted ? #combined->insert('' = #headers->find(#i));
			#combined->merge(local(#i));
		/iterate;
	else;
		local('combined') = local(#lists->first);
	/if;
	
	#sorted ? #combined = array_sortpairs(#combined);
	
	local('out' = '';
	
	return(@#out);
/define_tag;

Related Tags

Comments

No comments

Please log in to comment

Subscribe to the LassoTalk mail list

LassoSoft Inc. > Home

 

 

©LassoSoft Inc 2015 | Web Development by Treefrog Inc | PrivacyLegal terms and Shipping | Contact LassoSoft