Forums
This topic is locked
Enter a zip and auto populate City and State
Posted 27 Feb 2009 17:19:53
1
has voted
27 Feb 2009 17:19:53 Michelle Weiler posted:
I have a form set up in asp using Dreamweaver with a text box for Zip, City, and State. I want a person to fill in zip and then when they move to the next field to have it fill in city and state. I also have a database called zipcodes and a table called zip with zip, city, state fields. Can anyone tell me how to do this. I have tried so many different things and just can't get it to work. [Replies
Replied 25 Mar 2009 05:45:37
25 Mar 2009 05:45:37 dave blohm replied:
hi michelle...
so i tinkered around with this for a little bit and here's the solution i came up with...
first, let me apologize...i wrote this quickly so it's a little ugly.
there are two pages...the display page (index.asp) and the page serving up the data for the AJAX call (zips_ajax.asp). I have a table in my DB called ZIPS with fields 'zip', 'city', and 'state'.
here's a link to the functioning page on my site: www.daveblohm.com/dmxzone/zips/
here's a link to the CSV file containing the ZIPs for most if not all US cities (found this online for free after a little searching) : www.daveblohm.com/dmxzone/zips/allzips.csv
here's the code for index.asp
for some reason my_count is coming out as my_countmy_count in a couple places (lines 11 and 14) when I copy and paste my code...it should just be my_count
here's the code for zips_ajax.asp
let me know if you have any questions...hope this helps
so i tinkered around with this for a little bit and here's the solution i came up with...
first, let me apologize...i wrote this quickly so it's a little ugly.
there are two pages...the display page (index.asp) and the page serving up the data for the AJAX call (zips_ajax.asp). I have a table in my DB called ZIPS with fields 'zip', 'city', and 'state'.
here's a link to the functioning page on my site: www.daveblohm.com/dmxzone/zips/
here's a link to the CSV file containing the ZIPs for most if not all US cities (found this online for free after a little searching) : www.daveblohm.com/dmxzone/zips/allzips.csv
here's the code for index.asp
for some reason my_count is coming out as my_countmy_count in a couple places (lines 11 and 14) when I copy and paste my code...it should just be my_count
<
%' ::::: my func to build a states select field
function frm_select_states(field_name, show_selected, selected_value)
response.write "<select name=""" & field_name & """ id=""" & field_name & """><option value="""">select a state</option>" & vbcrlf
my_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","VA","Virginia","WA","Washington","WV","West Virginia","WI","Wisconsin","WY","Wyoming")
my_ubound = ubound(my_states)
do while not my_count = my_ubound + 1
response.write "<option value=""" & my_states(my_count) & """ "
if show_selected = true and lcase(selected_value) =lcase(my_states(my_count)) then
response.write " selected=""selected"" "
end if
my_count = my_count + 1
response.Write ">" & my_states(my_count) & "</option>" & vbcrlf
my_count = my_count + 1
loop
response.write "</select>"
end function
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>DMX Zone Demo : ZIPS</title>
<script language="javascript">
function get_zip_info(zip){
// pass the zip to zips_ajax.asp, return the city and state
// and set the form field values accrodingly
var xmlHttp;
try{
// Firefox, Opera 8.0+, Safari
xmlHttp=new XMLHttpRequest();
}
catch(e){
// Internet Explorer
try{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch(e){
try{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
catch(e){
alert("Your browser does not support AJAX!");
return false;
}
}
}
xmlHttp.onreadystatechange=function(){
if(xmlHttp.readyState==4){
// grab the returned string, split it, and populate the form fields
var myarray = xmlHttp.responseText.split("*");
if(myarray[0]=='eof'){
alert('no data was returned');
document.getElementById('city').value = '';
document.getElementById('state').value = '';
}else{
document.getElementById('city').value = myarray[0];
document.getElementById('state').value = myarray[1];
}
document.getElementById('zip').focus();
}
}
xmlHttp.open('GET','zips_ajax.asp?zip=' + zip,true);
xmlHttp.send(null);
}
</script>
</head>
<body onload="document.getElementById('zip').focus()">
<table width="400" border="0" cellspacing="0" cellpadding="0" align="center">
<tr>
<td width="101"> </td>
<td width="299"> </td>
</tr>
<tr>
<td>City</td>
<td><input type="text" name="city" id="city" /></td>
</tr>
<tr>
<td>State</td>
<td><% frm_select_states "state", false, false %></td>
</tr>
<tr>
<td>ZIP Code</td>
<td><input name="zip" type="text" id="zip" onchange="get_zip_info(this.value)" size="5" maxlength="5" /></td>
</tr>
</table>
</body>
</html>
here's the code for zips_ajax.asp
<!--#include virtual="/your_connections_file.asp" -->
<
%Set rs_cmd = server.createobject ("ADODB.Command")
rs_cmd.activeConnection = MM_conny_STRING
rs_cmd.commandtext = "select * from dbo.zips where zip ='" & request.QueryString("zip") & "'"
rs_cmd.prepared = true
Set rs = rs_cmd.execute
if rs.eof then
response.write "eof*"
else
response.write rs("city") & "*" & rs("state")
end if
rs.Close()
Set rs = Nothing
%>
let me know if you have any questions...hope this helps
Edited by - dave blohm on 25 Mar 2009 05:51:05