I'm not even sure when I noticed this, but there's a now a Country and State formtool type (fttype). The Meteorsite project needed a tours page that includes state information. I'm fairly sure that it's going to just be North America for now, but we can always hash that out later.
The Country type is pretty well defined out of the box, but the State type only includes information relevant to the Auzzie's (which makes sense, really). So, let's extend our new state type and include the provinces from Canada, and the US states.
Copy the /farcry/core/packages/formtools/state.cfc to your local /farcry/projects/packages/formtools/state.cfc. You'll need to change the extend to farcry.core.packages.formtools.state in the state.cfc. The following is the additions to the getState function.
<!--- North America - USA --->
<cfset queryaddrow(q) /><cfset querysetcell(q,"code","AL") /><cfset querysetcell(q,"name","ALABAMA") /><cfset querysetcell(q,"countrycode","US") /><cfset querysetcell(q,"countryname","United States of America") />
<cfset queryaddrow(q) /><cfset querysetcell(q,"code","AK") /><cfset querysetcell(q,"name","ALASKA") /><cfset querysetcell(q,"countrycode","US") /><cfset querysetcell(q,"countryname","United States of America") />
<cfset queryaddrow(q) /><cfset querysetcell(q,"code","AS") /><cfset querysetcell(q,"name","AMERICAN SAMOA") /><cfset querysetcell(q,"countrycode","US") /><cfset querysetcell(q,"countryname","United States of America") />
<cfset queryaddrow(q) /><cfset querysetcell(q,"code","AZ") /><cfset querysetcell(q,"name","ARIZONA") /><cfset querysetcell(q,"countrycode","US") /><cfset querysetcell(q,"countryname","United States of America") />
<cfset queryaddrow(q) /><cfset querysetcell(q,"code","AR") /><cfset querysetcell(q,"name","ARKANSAS") /><cfset querysetcell(q,"countrycode","US") /><cfset querysetcell(q,"countryname","United States of America") />
<cfset queryaddrow(q) /><cfset querysetcell(q,"code","CA") /><cfset querysetcell(q,"name","CALIFORNIA") /><cfset querysetcell(q,"countrycode","US") /><cfset querysetcell(q,"countryname","United States of America") />
<cfset queryaddrow(q) /><cfset querysetcell(q,"code","CO") /><cfset querysetcell(q,"name","COLORADO") /><cfset querysetcell(q,"countrycode","US") /><cfset querysetcell(q,"countryname","United States of America") />
<cfset queryaddrow(q) /><cfset querysetcell(q,"code","CT") /><cfset querysetcell(q,"name","CONNECTICUT") /><cfset querysetcell(q,"countrycode","US") /><cfset querysetcell(q,"countryname","United States of America") />
<cfset queryaddrow(q) /><cfset querysetcell(q,"code","DE") /><cfset querysetcell(q,"name","DELAWARE") /><cfset querysetcell(q,"countrycode","US") /><cfset querysetcell(q,"countryname","United States of America") />
<cfset queryaddrow(q) /><cfset querysetcell(q,"code","DC") /><cfset querysetcell(q,"name","DISTRICT OF COLUMBIA") /><cfset querysetcell(q,"countrycode","US") /><cfset querysetcell(q,"countryname","United States of America") />
<cfset queryaddrow(q) /><cfset querysetcell(q,"code","FM") /><cfset querysetcell(q,"name","FEDERATED STATES OF MICRONESIA") /><cfset querysetcell(q,"countrycode","US") /><cfset querysetcell(q,"countryname","United States of America") />
<cfset queryaddrow(q) /><cfset querysetcell(q,"code","FL") /><cfset querysetcell(q,"name","FLORIDA") /><cfset querysetcell(q,"countrycode","US") /><cfset querysetcell(q,"countryname","United States of America") />
<cfset queryaddrow(q) /><cfset querysetcell(q,"code","GA") /><cfset querysetcell(q,"name","GEORGIA") /><cfset querysetcell(q,"countrycode","US") /><cfset querysetcell(q,"countryname","United States of America") />
<cfset queryaddrow(q) /><cfset querysetcell(q,"code","GU") /><cfset querysetcell(q,"name","GUAM") /><cfset querysetcell(q,"countrycode","US") /><cfset querysetcell(q,"countryname","United States of America") />
<cfset queryaddrow(q) /><cfset querysetcell(q,"code","HI") /><cfset querysetcell(q,"name","HAWAII") /><cfset querysetcell(q,"countrycode","US") /><cfset querysetcell(q,"countryname","United States of America") />
<cfset queryaddrow(q) /><cfset querysetcell(q,"code","ID") /><cfset querysetcell(q,"name","IDAHO") /><cfset querysetcell(q,"countrycode","US") /><cfset querysetcell(q,"countryname","United States of America") />
<cfset queryaddrow(q) /><cfset querysetcell(q,"code","IL") /><cfset querysetcell(q,"name","ILLINOIS") /><cfset querysetcell(q,"countrycode","US") /><cfset querysetcell(q,"countryname","United States of America") />
<cfset queryaddrow(q) /><cfset querysetcell(q,"code","IN") /><cfset querysetcell(q,"name","INDIANA") /><cfset querysetcell(q,"countrycode","US") /><cfset querysetcell(q,"countryname","United States of America") />
<cfset queryaddrow(q) /><cfset querysetcell(q,"code","IA") /><cfset querysetcell(q,"name","IOWA") /><cfset querysetcell(q,"countrycode","US") /><cfset querysetcell(q,"countryname","United States of America") />
<cfset queryaddrow(q) /><cfset querysetcell(q,"code","KS") /><cfset querysetcell(q,"name","KANSAS") /><cfset querysetcell(q,"countrycode","US") /><cfset querysetcell(q,"countryname","United States of America") />
<cfset queryaddrow(q) /><cfset querysetcell(q,"code","KY") /><cfset querysetcell(q,"name","KENTUCKY") /><cfset querysetcell(q,"countrycode","US") /><cfset querysetcell(q,"countryname","United States of America") />
<cfset queryaddrow(q) /><cfset querysetcell(q,"code","LA") /><cfset querysetcell(q,"name","LOUISIANA") /><cfset querysetcell(q,"countrycode","US") /><cfset querysetcell(q,"countryname","United States of America") />
<cfset queryaddrow(q) /><cfset querysetcell(q,"code","ME") /><cfset querysetcell(q,"name","MAINE") /><cfset querysetcell(q,"countrycode","US") /><cfset querysetcell(q,"countryname","United States of America") />
<cfset queryaddrow(q) /><cfset querysetcell(q,"code","MH") /><cfset querysetcell(q,"name","MARSHALL ISLANDS") /><cfset querysetcell(q,"countrycode","US") /><cfset querysetcell(q,"countryname","United States of America") />
<cfset queryaddrow(q) /><cfset querysetcell(q,"code","MD") /><cfset querysetcell(q,"name","MARYLAND") /><cfset querysetcell(q,"countrycode","US") /><cfset querysetcell(q,"countryname","United States of America") />
<cfset queryaddrow(q) /><cfset querysetcell(q,"code","MA") /><cfset querysetcell(q,"name","MASSACHUSETTS") /><cfset querysetcell(q,"countrycode","US") /><cfset querysetcell(q,"countryname","United States of America") />
<cfset queryaddrow(q) /><cfset querysetcell(q,"code","MI") /><cfset querysetcell(q,"name","MICHIGAN") /><cfset querysetcell(q,"countrycode","US") /><cfset querysetcell(q,"countryname","United States of America") />
<cfset queryaddrow(q) /><cfset querysetcell(q,"code","MN") /><cfset querysetcell(q,"name","MINNESOTA") /><cfset querysetcell(q,"countrycode","US") /><cfset querysetcell(q,"countryname","United States of America") />
<cfset queryaddrow(q) /><cfset querysetcell(q,"code","MS") /><cfset querysetcell(q,"name","MISSISSIPPI") /><cfset querysetcell(q,"countrycode","US") /><cfset querysetcell(q,"countryname","United States of America") />
<cfset queryaddrow(q) /><cfset querysetcell(q,"code","MO") /><cfset querysetcell(q,"name","MISSOURI") /><cfset querysetcell(q,"countrycode","US") /><cfset querysetcell(q,"countryname","United States of America") />
<cfset queryaddrow(q) /><cfset querysetcell(q,"code","MT") /><cfset querysetcell(q,"name","MONTANA") /><cfset querysetcell(q,"countrycode","US") /><cfset querysetcell(q,"countryname","United States of America") />
<cfset queryaddrow(q) /><cfset querysetcell(q,"code","NE") /><cfset querysetcell(q,"name","NEBRASKA") /><cfset querysetcell(q,"countrycode","US") /><cfset querysetcell(q,"countryname","United States of America") />
<cfset queryaddrow(q) /><cfset querysetcell(q,"code","NV") /><cfset querysetcell(q,"name","NEVADA") /><cfset querysetcell(q,"countrycode","US") /><cfset querysetcell(q,"countryname","United States of America") />
<cfset queryaddrow(q) /><cfset querysetcell(q,"code","NH") /><cfset querysetcell(q,"name","NEW HAMPSHIRE") /><cfset querysetcell(q,"countrycode","US") /><cfset querysetcell(q,"countryname","United States of America") />
<cfset queryaddrow(q) /><cfset querysetcell(q,"code","NJ") /><cfset querysetcell(q,"name","NEW JERSEY") /><cfset querysetcell(q,"countrycode","US") /><cfset querysetcell(q,"countryname","United States of America") />
<cfset queryaddrow(q) /><cfset querysetcell(q,"code","NM") /><cfset querysetcell(q,"name","NEW MEXICO") /><cfset querysetcell(q,"countrycode","US") /><cfset querysetcell(q,"countryname","United States of America") />
<cfset queryaddrow(q) /><cfset querysetcell(q,"code","NY") /><cfset querysetcell(q,"name","NEW YORK") /><cfset querysetcell(q,"countrycode","US") /><cfset querysetcell(q,"countryname","United States of America") />
<cfset queryaddrow(q) /><cfset querysetcell(q,"code","NC") /><cfset querysetcell(q,"name","NORTH CAROLINA") /><cfset querysetcell(q,"countrycode","US") /><cfset querysetcell(q,"countryname","United States of America") />
<cfset queryaddrow(q) /><cfset querysetcell(q,"code","ND") /><cfset querysetcell(q,"name","NORTH DAKOTA") /><cfset querysetcell(q,"countrycode","US") /><cfset querysetcell(q,"countryname","United States of America") />
<cfset queryaddrow(q) /><cfset querysetcell(q,"code","MP") /><cfset querysetcell(q,"name","NORTHERN MARIANA ISLANDS") /><cfset querysetcell(q,"countrycode","US") /><cfset querysetcell(q,"countryname","United States of America") />
<cfset queryaddrow(q) /><cfset querysetcell(q,"code","OH") /><cfset querysetcell(q,"name","OHIO") /><cfset querysetcell(q,"countrycode","US") /><cfset querysetcell(q,"countryname","United States of America") />
<cfset queryaddrow(q) /><cfset querysetcell(q,"code","OK") /><cfset querysetcell(q,"name","OKLAHOMA") /><cfset querysetcell(q,"countrycode","US") /><cfset querysetcell(q,"countryname","United States of America") />
<cfset queryaddrow(q) /><cfset querysetcell(q,"code","OR") /><cfset querysetcell(q,"name","OREGON") /><cfset querysetcell(q,"countrycode","US") /><cfset querysetcell(q,"countryname","United States of America") />
<cfset queryaddrow(q) /><cfset querysetcell(q,"code","PW") /><cfset querysetcell(q,"name","PALAU") /><cfset querysetcell(q,"countrycode","US") /><cfset querysetcell(q,"countryname","United States of America") />
<cfset queryaddrow(q) /><cfset querysetcell(q,"code","PA") /><cfset querysetcell(q,"name","PENNSYLVANIA") /><cfset querysetcell(q,"countrycode","US") /><cfset querysetcell(q,"countryname","United States of America") />
<cfset queryaddrow(q) /><cfset querysetcell(q,"code","PR") /><cfset querysetcell(q,"name","PUERTO RICO") /><cfset querysetcell(q,"countrycode","US") /><cfset querysetcell(q,"countryname","United States of America") />
<cfset queryaddrow(q) /><cfset querysetcell(q,"code","RI") /><cfset querysetcell(q,"name","RHODE ISLAND") /><cfset querysetcell(q,"countrycode","US") /><cfset querysetcell(q,"countryname","United States of America") />
<cfset queryaddrow(q) /><cfset querysetcell(q,"code","SC") /><cfset querysetcell(q,"name","SOUTH CAROLINA") /><cfset querysetcell(q,"countrycode","US") /><cfset querysetcell(q,"countryname","United States of America") />
<cfset queryaddrow(q) /><cfset querysetcell(q,"code","SD") /><cfset querysetcell(q,"name","SOUTH DAKOTA") /><cfset querysetcell(q,"countrycode","US") /><cfset querysetcell(q,"countryname","United States of America") />
<cfset queryaddrow(q) /><cfset querysetcell(q,"code","TN") /><cfset querysetcell(q,"name","TENNESSEE") /><cfset querysetcell(q,"countrycode","US") /><cfset querysetcell(q,"countryname","United States of America") />
<cfset queryaddrow(q) /><cfset querysetcell(q,"code","TX") /><cfset querysetcell(q,"name","TEXAS") /><cfset querysetcell(q,"countrycode","US") /><cfset querysetcell(q,"countryname","United States of America") />
<cfset queryaddrow(q) /><cfset querysetcell(q,"code","UT") /><cfset querysetcell(q,"name","UTAH") /><cfset querysetcell(q,"countrycode","US") /><cfset querysetcell(q,"countryname","United States of America") />
<cfset queryaddrow(q) /><cfset querysetcell(q,"code","VT") /><cfset querysetcell(q,"name","VERMONT") /><cfset querysetcell(q,"countrycode","US") /><cfset querysetcell(q,"countryname","United States of America") />
<cfset queryaddrow(q) /><cfset querysetcell(q,"code","VI") /><cfset querysetcell(q,"name","VIRGIN ISLANDS") /><cfset querysetcell(q,"countrycode","US") /><cfset querysetcell(q,"countryname","United States of America") />
<cfset queryaddrow(q) /><cfset querysetcell(q,"code","VA") /><cfset querysetcell(q,"name","VIRGINIA") /><cfset querysetcell(q,"countrycode","US") /><cfset querysetcell(q,"countryname","United States of America") />
<cfset queryaddrow(q) /><cfset querysetcell(q,"code","WA") /><cfset querysetcell(q,"name","WASHINGTON") /><cfset querysetcell(q,"countrycode","US") /><cfset querysetcell(q,"countryname","United States of America") />
<cfset queryaddrow(q) /><cfset querysetcell(q,"code","WV") /><cfset querysetcell(q,"name","WEST VIRGINIA") /><cfset querysetcell(q,"countrycode","US") /><cfset querysetcell(q,"countryname","United States of America") />
<cfset queryaddrow(q) /><cfset querysetcell(q,"code","WI") /><cfset querysetcell(q,"name","WISCONSIN") /><cfset querysetcell(q,"countrycode","US") /><cfset querysetcell(q,"countryname","United States of America") />
<cfset queryaddrow(q) /><cfset querysetcell(q,"code","WY") /><cfset querysetcell(q,"name","WYOMING") /><cfset querysetcell(q,"countrycode","US") /><cfset querysetcell(q,"countryname","United States of America") />
<!--- North America - Canada--->
<cfset queryaddrow(q) /><cfset querysetcell(q,"code","AB") /><cfset querysetcell(q,"name","Alberta") /><cfset querysetcell(q,"countrycode","CA") /><cfset querysetcell(q,"countryname","Canada") />
<cfset queryaddrow(q) /><cfset querysetcell(q,"code","BC") /><cfset querysetcell(q,"name","British Columbia") /><cfset querysetcell(q,"countrycode","CA") /><cfset querysetcell(q,"countryname","Canada") />
<cfset queryaddrow(q) /><cfset querysetcell(q,"code","MB") /><cfset querysetcell(q,"name","Manitoba") /><cfset querysetcell(q,"countrycode","CA") /><cfset querysetcell(q,"countryname","Canada") />
<cfset queryaddrow(q) /><cfset querysetcell(q,"code","NB") /><cfset querysetcell(q,"name","New Brunswick") /><cfset querysetcell(q,"countrycode","CA") /><cfset querysetcell(q,"countryname","Canada") />
<cfset queryaddrow(q) /><cfset querysetcell(q,"code","NL") /><cfset querysetcell(q,"name","Newfoundland and Labrador") /><cfset querysetcell(q,"countrycode","CA") /><cfset querysetcell(q,"countryname","Canada") />
<cfset queryaddrow(q) /><cfset querysetcell(q,"code","NT") /><cfset querysetcell(q,"name","Northwest Territories") /><cfset querysetcell(q,"countrycode","CA") /><cfset querysetcell(q,"countryname","Canada") />
<cfset queryaddrow(q) /><cfset querysetcell(q,"code","NS") /><cfset querysetcell(q,"name","Nova Scotia") /><cfset querysetcell(q,"countrycode","CA") /><cfset querysetcell(q,"countryname","Canada") />
<cfset queryaddrow(q) /><cfset querysetcell(q,"code","NU") /><cfset querysetcell(q,"name","Nunavut") /><cfset querysetcell(q,"countrycode","CA") /><cfset querysetcell(q,"countryname","Canada") />
<cfset queryaddrow(q) /><cfset querysetcell(q,"code","ON") /><cfset querysetcell(q,"name","Ontario") /><cfset querysetcell(q,"countrycode","CA") /><cfset querysetcell(q,"countryname","Canada") />
<cfset queryaddrow(q) /><cfset querysetcell(q,"code","PE") /><cfset querysetcell(q,"name","Prince Edward Island") /><cfset querysetcell(q,"countrycode","CA") /><cfset querysetcell(q,"countryname","Canada") />
<cfset queryaddrow(q) /><cfset querysetcell(q,"code","QC") /><cfset querysetcell(q,"name","Quebec") /><cfset querysetcell(q,"countrycode","CA") /><cfset querysetcell(q,"countryname","Canada") />
<cfset queryaddrow(q) /><cfset querysetcell(q,"code","SK") /><cfset querysetcell(q,"name","Saskatchewan") /><cfset querysetcell(q,"countrycode","CA") /><cfset querysetcell(q,"countryname","Canada") />
<cfset queryaddrow(q) /><cfset querysetcell(q,"code","YT") /><cfset querysetcell(q,"name","Yukon") /><cfset querysetcell(q,"countrycode","CA") /><cfset querysetcell(q,"countryname","Canada") />
And, there you go. Ready made dropdowns to capture state information. You'd set the cfproperty to call this like the example below. You can specify a delimited list of country codes in ftCountries to grab from, or leave the property blank to grab all states in the getStates funtion.
<cfproperty ftseq="7" ftfieldset="Tour Event Overview" ftwizardStep="General Details" name="state" type="string" hint="State." fttype="state" ftCountries="US,CA" required="no" default="" ftLabel="State" />