Обычно это делается путем фильтрации городов в зависимости от выбора страны. Когда кто-то выбирает его страну, он запускает Ajax, чтобы заселить только города в этой стране. Чтобы получить список стран и городов, вы должны использовать db-запросы на сервере. Это общий обзор, который может дать вам некоторое представление о том, что на самом деле делается.