By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
459,238 Members | 1,565 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 459,238 IT Pros & Developers. It's quick & easy.

zip code and city

P: n/a
I've a page where users may enter a zip code (text edit) and I want to fill
a combobox with existing cities depending on the zip code entered.

Let give an example.

I've my text edit like:
<input name="ZIP" type="text" id="ZIP" onKeyUp="fillcitycombo();">
<select name="City" id="City"></select>

When entering the zip code, I'd like the fillcitycombo() function to fill
the combobox with the matching cities.
For example I've

IDCity ZIP City
1 1950 Sion
2 1950 Pont-de-la-Morge
3 3960 Sierre
4 3960 Corin

So user's entry 3960 should fill the combo with Sierre, ID 3 and Corin, ID
4, as selecting 3 or 4 will change the city (that share the same ZIP code).

Of course the ZIP and city datas will be in the javascript source, as client
side there is no access to the DB. For info, in the client's DB I store the
IDCity code.

Thanks for help.

Bob
Jul 23 '05 #1
Share this Question
Share on Google+
12 Replies


P: n/a
In article <41*********************@news.sunrise.ch>, bedford1
@YouKnowWhatToDoHerehotmail.com enlightened us with...
I've a page where users may enter a zip code (text edit) and I want to fill
a combobox with existing cities depending on the zip code entered.


Does this help?

http://www.ipwebdesign.net/kaelisSpa...icSelects.html

--
--
~kaeli~
The man who fell into an upholstery machine is fully
recovered.
http://www.ipwebdesign.net/wildAtHeart
http://www.ipwebdesign.net/kaelisSpace

Jul 23 '05 #2

P: n/a
Hi,

It's what I'm looking for, but I've to generate the list with 4430 records,
so I can't do it manually.

I've now an Excel file with those datas:
columnA : recordID
columnB : City
columnC : Zip code

How to work with such fields with your idea (sorry I'm not so confortable
with js).

Cheers

Bob

"kaeli" <ti******@NOSPAM.comcast.net> a écrit dans le message de
news:MP************************@nntp.lucent.com...
In article <41*********************@news.sunrise.ch>, bedford1
@YouKnowWhatToDoHerehotmail.com enlightened us with...
I've a page where users may enter a zip code (text edit) and I want to fill a combobox with existing cities depending on the zip code entered.


Does this help?

http://www.ipwebdesign.net/kaelisSpa...icSelects.html

--
--
~kaeli~
The man who fell into an upholstery machine is fully
recovered.
http://www.ipwebdesign.net/wildAtHeart
http://www.ipwebdesign.net/kaelisSpace

Jul 23 '05 #3

P: n/a
In article <41*********************@news.sunrise.ch>, bedford1
@YouKnowWhatToDoHerehotmail.com enlightened us with...
Hi,

It's what I'm looking for, but I've to generate the list with 4430 records,
so I can't do it manually.

I've now an Excel file with those datas:
columnA : recordID
columnB : City
columnC : Zip code

How to work with such fields with your idea (sorry I'm not so confortable
with js).


You don't, more than likely.

The answer is highly dependent on environment.

If this is for an intranet/IE-only env, you can use ActiveX to read the file
and stuff.

If it isn't, you need to save the file as text on the server and use some
method of retrieving the values into the JS. Again, depends on env, but
you'll need a server-side script to either get the values and write into the
page before it's generated or one to do it after, similar to:
http://www.ipwebdesign.net/kaelisSpa...alidation.html
Either way, there's a server-side scripting language involved.

Basically, standard internet cross-browser javascript cannot read files on
the server all by itself.

If this is a one-time only thing to generate hard-coded javascript based on
the Excel file on your HD, you could make a quick little Excel macro for
that. But I'm assuming the list changes and the JS is dynamic.

If this is to work only for you on your machine, you can use an HTA to read
the Excel.

See, it just all depends on what you're doing, exactly.

--
--
~kaeli~
You can't have everything. Where would you put it?
http://www.ipwebdesign.net/wildAtHeart
http://www.ipwebdesign.net/kaelisSpace

Jul 23 '05 #4

P: n/a
> The answer is highly dependent on environment.

If this is for an intranet/IE-only env, you can use ActiveX to read the file and stuff.

If it isn't, you need to save the file as text on the server and use some
method of retrieving the values into the JS. Again, depends on env, but
you'll need a server-side script to either get the values and write into the page before it's generated or one to do it after, similar to:
http://www.ipwebdesign.net/kaelisSpa...alidation.html
Either way, there's a server-side scripting language involved.

Basically, standard internet cross-browser javascript cannot read files on
the server all by itself.

If this is a one-time only thing to generate hard-coded javascript based on the Excel file on your HD, you could make a quick little Excel macro for
that. But I'm assuming the list changes and the JS is dynamic.

If this is to work only for you on your machine, you can use an HTA to read the Excel.


Hi Kaeli,

Thanks for your valuable help

1- the file doesn't change (ZIP codes and cities most likely never changes
;-)....)
2- I know the difference between server side and client side. Now I do open
a pop-up (wich have PHP server side code, that retrieves datas from a MySQL
table) and then using JS I fill the combobox with cities that match the ZIP
code.

problem is that some browser (mainly on MAC) don't let this to be done
correctly. Also anti-popup program don't let either do this. So I'm looking
for creating a JS script, wich will be included in the page sent to the
client (the browser) wich a structure giving the possibility to fill the
combo by selecting a ZIP code in a text field. In my coutry, the same ZIP
code may have many little town, so I've to take care at this problem.

So my problem is, depending on the ZIP code selected, fill the combo with
possible town or cities accordingly, and then, when I submit the form, save
the RecordID (that is an unique code for the town).
The structure of my table is:

columnA : recordID
columnB : City
columnC : Zip code

example:
1 Sion 1950
2 Chateauneuf 1950
3 Sierre 3960
4 Corin 3960
5 Monthey 4520
6 St-Maurice 4290

So, if a user enter 3960 in a text field, the JS script should fill the
combo with Sierre and Corin. By selecting Sierre, I've to submit the
RecordID 3 (that will be saved in the database), if the user selects Corin,
the RecordID would be 4

If you have any idea, please let me know.

Cheers,

Bob
Jul 23 '05 #5

P: n/a
I actually did some very similar. I needed to access a database via
javascript and I was in a hurry. You can put the database into a .js file.
The large amount of records makes it prohibitive to do manually. I wrote a
little c program to format the data something like this.
var numVariables=??; so I can use a loop efficiently
var varName1 = new Array('data','id','whatever'); // named and populated
programatically
or
var varName1 = new Array();
varName1.zipCode=????.
varName1.cityName="cityname";
etc
.....
var varNameN = .....
<script etc>
var ind =
document.yourForm["formName"].elements["selectName"].selectedIndex;
var myVar = eval("varName" + ind);
var myZipCode=myVar.zipCode
etc
</script>
This is not something you want to code manually and not a good long term
solution. But it will work!! >) Hope this helps.
Jimbo
"Bob Bedford" <be******@YouKnowWhatToDoHerehotmail.com> wrote in message
news:41*********************@news.sunrise.ch...
The answer is highly dependent on environment.

If this is for an intranet/IE-only env, you can use ActiveX to read the file
and stuff.

If it isn't, you need to save the file as text on the server and use some method of retrieving the values into the JS. Again, depends on env, but
you'll need a server-side script to either get the values and write into

the
page before it's generated or one to do it after, similar to:
http://www.ipwebdesign.net/kaelisSpa...alidation.html Either way, there's a server-side scripting language involved.

Basically, standard internet cross-browser javascript cannot read files on the server all by itself.

If this is a one-time only thing to generate hard-coded javascript based

on
the Excel file on your HD, you could make a quick little Excel macro for
that. But I'm assuming the list changes and the JS is dynamic.

If this is to work only for you on your machine, you can use an HTA to

read
the Excel.


Hi Kaeli,

Thanks for your valuable help

1- the file doesn't change (ZIP codes and cities most likely never changes
;-)....)
2- I know the difference between server side and client side. Now I do

open a pop-up (wich have PHP server side code, that retrieves datas from a MySQL table) and then using JS I fill the combobox with cities that match the ZIP code.

problem is that some browser (mainly on MAC) don't let this to be done
correctly. Also anti-popup program don't let either do this. So I'm looking for creating a JS script, wich will be included in the page sent to the
client (the browser) wich a structure giving the possibility to fill the
combo by selecting a ZIP code in a text field. In my coutry, the same ZIP
code may have many little town, so I've to take care at this problem.

So my problem is, depending on the ZIP code selected, fill the combo with
possible town or cities accordingly, and then, when I submit the form, save the RecordID (that is an unique code for the town).
The structure of my table is:

columnA : recordID
columnB : City
columnC : Zip code

example:
1 Sion 1950
2 Chateauneuf 1950
3 Sierre 3960
4 Corin 3960
5 Monthey 4520
6 St-Maurice 4290

So, if a user enter 3960 in a text field, the JS script should fill the
combo with Sierre and Corin. By selecting Sierre, I've to submit the
RecordID 3 (that will be saved in the database), if the user selects Corin, the RecordID would be 4

If you have any idea, please let me know.

Cheers,

Bob

Jul 23 '05 #6

P: n/a
JRS: In article <41*********************@news.sunrise.ch>, dated Tue,
14 Sep 2004 12:01:22, seen in news:comp.lang.javascript, Bob Bedford
<be******@YouKnowWhatToDoHerehotmail.com> posted :
I've a page where users may enter a zip code (text edit) and I want to fill
a combobox with existing cities depending on the zip code entered.

Let give an example.

I've my text edit like:
<input name="ZIP" type="text" id="ZIP" onKeyUp="fillcitycombo();">
<select name="City" id="City"></select>

When entering the zip code, I'd like the fillcitycombo() function to fill
the combobox with the matching cities.


For that, every user, including those of dial-up and other slow links,
will have to download the whole list. It may well not be a good idea.

--
© John Stockton, Surrey, UK. ?@merlyn.demon.co.uk Turnpike v4.00 IE 4 ©
<URL:http://www.jibbering.com/faq/> JL/RC: FAQ of news:comp.lang.javascript
<URL:http://www.merlyn.demon.co.uk/js-index.htm> jscr maths, dates, sources.
<URL:http://www.merlyn.demon.co.uk/> TP/BP/Delphi/jscr/&c, FAQ items, links.
Jul 23 '05 #7

P: n/a
"Bob Bedford" <be******@YouKnowWhatToDoHerehotmail.com> wrote in message news:<41*********************@news.sunrise.ch>...
Hi,

It's what I'm looking for, but I've to generate the list with 4430 records,
so I can't do it manually.

To get data, one possibility is to use a hidden iframe. What you do
is periodically load the iframe. Have the iframe invoke some
javascript in the onload handler. Have the javascript refresh the
page.

Here is a more detail write up:

http://groups.google.com/groups?hl=e...news.xs4all.nl

From: Erwin Moller
Subject: Re: calling Perl script from javascript
Newsgroups: comp.lang.javascript

Another alternative is to use an xml HTTP request. See:

http://jibbering.com/2002/4/httprequest.html

I'd try to find a week long course on advanced web programming that
covers this stuff and convince your boss you need to attend.
Robert
Jul 23 '05 #8

P: n/a
> To get data, one possibility is to use a hidden iframe. What you do
is periodically load the iframe. Have the iframe invoke some
javascript in the onload handler. Have the javascript refresh the
page.

Here is a more detail write up:

http://groups.google.com/groups?hl=e...news.xs4all.nl

I've been using this method until some users sent me an email saying that it
doesn't work on their browser. Anti-popup program blocks open windows, so I
can't get the result back.
From: Erwin Moller
Subject: Re: calling Perl script from javascript
Newsgroups: comp.lang.javascript

Another alternative is to use an xml HTTP request. See:

http://jibbering.com/2002/4/httprequest.html


The reason I'm changing my code is that SAFARI isn't supported by some
features. and given what's written in the first part of the article, I won't
use this method.

Thanks anyway for the help.
Jul 23 '05 #9

P: n/a
On Thu, 16 Sep 2004 11:20:03 +0200, "Bob Bedford"
<be******@YouKnowWhatToDoHerehotmail.com> wrote:
http://jibbering.com/2002/4/httprequest.html


The reason I'm changing my code is that SAFARI isn't supported by some
features. and given what's written in the first part of the article, I won't
use this method.


That warning on Safari is somewhat more severe than I've now found (I
don't have a Max OS-X about so it's based on 3rd hand info) there are
limitations, it is more limited than the other 2 implementations, but
it's completely usable.

Jim.
Jul 23 '05 #10

P: n/a
In article <41*********************@news.sunrise.ch>, bedford1
@YouKnowWhatToDoHerehotmail.com enlightened us with...

1- the file doesn't change (ZIP codes and cities most likely never changes
;-)....)
Then what you need is a one-time thing that just puts everything into a
javascript array for easy reading, then a script like this one, that makes
select options dependent on choices.
Note that dial-up users may begin to hate you.

http://www.ipwebdesign.net/kaelisSpa...icSelects.html

So, just query your DB and have the result incorporated into generated
javascript code. I'd do this with a quick Java or C program, but you could
use Perl or even PHP if that was all you know how to code. Anything that can
output the needed text. If you use PHP, just have it output plain text to the
screen and copy/paste that into your editor and save as .js file.

Pseudocode:
//query DB, select and group by, to get zips and cities
select City, IDCity, zip from myTable group by zip, City, IDCity

//Loop through results
init/declare zipArray to hold all zip codes
init/declare cityArray to hold cities by zip
for each zip do
put in zipArray
for each city in zip do
put in cityArray[zip]
done
done

Then you can output each array as javascript.
output zipArray as main array
for each element in cityArray do
output cityArray[zip]
done
2- I know the difference between server side and client side. Now I do open
a pop-up (wich have PHP server side code, that retrieves datas from a MySQL
table) and then using JS I fill the combobox with cities that match the ZIP
code.

problem is that some browser (mainly on MAC) don't let this to be done
correctly.


Well, I don't know if all browsers you need to support allow it, but you
*could* use an "invisible" iframe instead of a popup.
--
--
~kaeli~
The secret of the universe is @*&^^^ NO CARRIER
http://www.ipwebdesign.net/wildAtHeart
http://www.ipwebdesign.net/kaelisSpace

Jul 23 '05 #11

P: n/a
"Bob Bedford" <be******@YouKnowWhatToDoHerehotmail.com> wrote in message news:<41***********************@news.sunrise.ch>.. .
To get data, one possibility is to use a hidden iframe.
I've been using this method until some users sent me an email saying that it
doesn't work on their browser.


Iframe will only work on newer browsers. I should have mentioned that.
Anti-popup program blocks open windows, so I
can't get the result back.


I do not see a need for a popup. Why are you using a popup?

Put the iframe in a div at the bottom of your current page and hide the div.

I've only read about this stuff. I haven't tried it.

Robert
Jul 23 '05 #12

P: n/a
ji*@jibbering.com (Jim Ley) wrote in message news:<41***************@news.individual.net>...
That warning on Safari is somewhat more severe than I've now found (I
don't have a Max OS-X about so it's based on 3rd hand info) there are
limitations, it is more limited than the other 2 implementations, but
it's completely usable.

Jim.


I'll test a page and report back here if that would be helpful. I
have Safari 1.0 which isn't the latest version however.

Robert
Jul 23 '05 #13

This discussion thread is closed

Replies have been disabled for this discussion.