Я бы просто использовал простое текстовое поле с автозаполнением. Вы можете получить список городов, но вам придется обновлять его, и вам придется беспокоиться о чепухе, такой как разница между «Сент-Джон», «Сент-Джон» и «Сент-Джон». *
Отправка целого списка городов клиенту будет просто кошмаром пользовательского интерфейса, список выбора будет содержать тысячи и тысячи записей, и вам придется отправлять много данных клиенту; нет причин ненавидеть своих посетителей так сильно.
Автозаполнитель может использовать выбранные в данный момент города для предоставления предложений по новым городам. Если у вас есть названия городов в нескольких местах, просто сохраните основной список городов для автозаполнения и обновляйте его новыми записями каждый день. В итоге вы получите список городов, но этот список будет построен сам.
Простой ввод текста будет работать везде, и почти каждый может довольно легко напечатать название своего города.