You can do this in CSS (see drop down menus), but it would require way too much typing in my opinion. Every city for every state?
You can do it with a database and server side processing via PHP for example. Or you could do it with a database and server side processing on one element via ajax.
A Google of "database of states and cities" returned 63M responses.
...and gladly would he learn and gladly teach
for humor and the unique Bush/Obama Approval Polls