Yeah, to reiterate what maxpup979 said... If you don't want to have to load all cities for all 50 states you can "trigger" the form to post after they select a state (i.e. without a submit button) but it would still have to reload your page.
If you don't mind querying for all cities in all states at the initial page load then javascript would allow the user to select a state and then populate the cities pulldown with the appropriate cities. However that would, as you asked, require you to do 1 query for all cities and have all that information in your javascript.
I don't think that would be too much of a problem as far as page load time.