Як отримати список країн для HTML форми. Частина 2

1

Від автора: вітаю вас, друзі. У даній статті ми з вами продовжимо тему того, як отримати список країн для HTML форми. Нагадую, у першій частині статті ми з вами фактично реалізували дану задачу. Однак, є невеликий нюанс — у значенні тега option замість країни вказано код телефону, тобто варіант вийшов не зовсім гнучким. Спробуємо удосконалити його. Продовжимо?

Вихідні файли поточної статті ви можете завантажити за посиланням.

Нагадаю, у попередньому уроці ми формально вирішили поставлену задачу, отримавши випадаючий список країн:

При цьому код списку виглядає наступним чином:

Отже, як же нам зробити вихідний варіант трохи більш гнучким? Відповідь очевидна — необхідно мати під рукою саме масив країн, а не готовий код HTML, у якому ці країни вже використані. Таким чином, маючи масив країн, ми можемо гнучко використовувати: формувати потрібну нам розмітку, виводити країни не в списку форми select, а, скажімо, в ненумерованном списку ul. Так, загалом, ми вільні робити що завгодно в цьому випадку. У нас є два варіанти вирішення проблеми:

вибирати всі країни вручну, формуючи з них масив

спробувати автоматизувати процес, довіривши формування списку країн програмі

Звичайно ж, ми оберемо другий варіант, адже людина за своєю природою ледачий, а лінь, як відомо, — двигун прогресу :)

Витратимо кілька хвилин часу на автоматизацію процесу, щоб в результаті отримати необхідний результат. При цьому неважливо наскільки великий список, нехай там будуть хоч тисячі значень — всі вони будуть отримані фактично миттєво.
Для вирішення завдання найпростіше скористатися можливостями регулярних виразів. Нам знадобиться скласти шаблон регулярного виразу, який обере вміст текстових вузлів тега option. До речі, якщо ви не знайомі з регулярними виразами, тоді обов’язково подивіться наш курс з регулярними виразами.

Скопіюємо код всього списку і скористаємося ось цим сервісом. Вставити скопійований код і почнемо складати регулярний вираз.

Шаблон регулярного виразу для даних елементів списку буде наступним:

/]+>([^<]+)/ig

Результат саме той, який нам потрібен:

В якості рядки заміни ми просто вставили наступне — «$1», — тобто обрамили запам’ятовування назви країн лапками і поставили після них кому. Залишається скопіювати ці країни і використовувати їх у нашій програмі в якості масиву, за яким ми і розглянемо в циклі:

$countries = [«Росія», «Абхазія», «Австралія», …];

В результаті ми отримаємо потрібний нам список країн у формі, але при цьому ми не обмежені у виборі розмітки і можемо використовувати масив країн з абсолютно будь-яким кодом.

На цьому ми завершимо цю статтю. Якщо вас цікавить тема валідації форм і роботи з ними, рекомендую подивитися цей урок. На цьому все. Удачі!