[c5_stateselect]

Description

Link: [c5_stateselect]
Author: Jason Huck
Category: Utility
Version: 8.x
License:
Posted: Jan. 16, 2006
Updated: Jan. 19, 2006
More by this author...
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].

Parameters

-inputname string, required The name to use for the HTML form element.
-editvalue string, optional The value that should be pre-selected in the pulldown.
-values string, optional Determines whether the option value should use the full name or abbreviation. Choose 'short' or 'long.' Defaults to 'short.'
-labels string, optional Determines whether the label for each option uses the full name or the abbreviation. Choose 'short' or 'long.' Defaults to 'short.'
-lists array, optional Determines which lists should be used, and in what order. Choices are 'states', 'provinces', & 'territories.' Defaults to 'states.'
-sorted boolean, optional If present, the -sorted keyword will cause the lists to be merged and sorted alphabetically. Otherwise each list is preceded by a header with no value.

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.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
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' = '<select name="' + #inputname + '">\n<option value=""></option>\n');
	
	iterate(#combined, local('i'));
		#out += '<option value="' + #i->first + '"';		
		#editvalue == #i->first && #editvalue != '' ? #out += ' selected';		
		#out += '>';
		
		if(#values == #labels);
			#out += (#i->first == '' ? #i->second | #i->first);
		else;
			#out += #i->second;
		/if;
		 
		#out += '</option>\n';
	/iterate;
	
	#out += '</select>';
	
	return(@#out);
/define_tag;

 

Related Tags



Comments

none

Email:


Password:



Newest

Most Popular