- Have the user enter their postal/zip code first, in a popup.
- Then, I would use a webservices API like EZCMD.com
to get a list of nearby cities, which the user will then select based on their postal code.
- Then store that list in a cookie along with an anonymous user unique token. When the user comes back to the site, check for the cookie.
- Check the token against your database for people who have visited the site and entered their postal/zip code.
To get the list of cities to put in your form you can do something like:
$.getJSON('https://ezcmd.com/apps/api_geo_postal_codes/nearby_locations_by_zip_code/GUEST_USER/-1?zip_code=90210&country_code=US&unit=Km&within=5', function(data){
//extract the data you need for your form here. This API might be best for the US,
//don't know about Russia.
console.log(data);
});
See jsfiddle to play with the API.
You can use this to set a cookie
Use this to set a unique token