One of the stock answers next door in Apache is: First explain in English what you're trying to do. Then write code to get you there.
In this case, I think the overall scheme is:
User comes to site.
User selects a city and does stuff pertaining to that city.
User goes away, and returns on some later date.
Site remembers where he was last time, and sends him back there.
User continues where he left off, or backtracks to follow a different line of inquiry concerning some other city.
Is that about right? Now figure out your ideal user experience-- with all possible behaviors and variations-- and we'll see about coding to make the site behave the way you want.