Výběr země na stránce v PHP bez databáze

15. září 2002

Potřebujete-li na svých stránkách zjednodušit výběr států, stačí k tomu poměrně jednoduchý skript, aniž byste využívali databázi.

Států je poměrně hodně, ovšem jejich seznam se mění velmi zřídka. V řadě případů by bylo použití databáze zbytečným kanónem na vrabce: například formulář, jehož obsah se odesílá na mail a nijak s databází nespolupracuje. Může to být třeba kniha návštěv, kde předpokládáme mezinárodní návštěvníky, ale klidně i aplikace pracující s databází, kde na určení země neklademe až tak velký důraz, ale chceme zvýšit komfort uživatele při zadávání dat.

Jediným problémem tak zůstává dát si tu práci a seznam zemí sepsat. Udělal jsem to za vás, a tak stačí seznam stáhnout a doplnit do aplikace. Také jsem doplnil jednoduchý test, který umožní nastavit určitou zemi jako předvolenou. To se hodí zejména v případě, kdy toto pole používáte nejen pro vkládání nových dat, ale i pro editaci. Pole select je tak schopné zobrazit aktuálně zvolenou zemi. Pokud se shoduje obsah proměnné $country s hodnotou uvedenou v podmínce v řádku dané země, vygeneruje se navíc slovo selected do tagu option, čímž se tento řádek stane předvoleným. Podívejte se na ukázku, ve kterém je předvolena Srí Lanka. Jen připomínám, že pokud takto předáváme název země, je třeba diakritické znaky a speciální znaky (jako je třeba mezera %20) nahradit sekvencí %kód – v PHP nám k tomu poslouží funkce RawUrlEncode().

Část skriptu countryselect.php:

<?php if (empty($country)) $country=’Czech Republic‘ ?>
<select name="country">
  <option value="Afghanistan" <?php echo ($country == ‚Afghanistan‘) ? ‚selected‘ : “ ?>>Afghanistan</option>
  <option value="Albania" <?php echo ($country == ‚Albania‘) ? ‚selected‘ : “ ?>>Albania</option>
  <option value="Algeria" <?php echo ($country == ‚Algeria‘) ? ‚selected‘ : “ ?>>Algeria</option>
  <option value="Andorra" <?php echo ($country == ‚Andorra‘) ? ‚selected‘ : “ ?>>Andorra</option>
  <option value="Angola" <?php echo ($country == ‚Angola‘) ? ‚selected‘ : “ ?>>Angola</option>
</select>

Stažený seznam států si zařaďte do své aplikace, předvolenou hodnotu nastavte do proměnné $country. V závislosti na aplikaci není problém ve skriptu proměnnou $country hromadně v textovém editoru nahradit za jinou dle potřeby (například prvek pole získaný z  databáze $data[2], proměnná předaná metodou GET $_GET['country'], hodnota cookie $_COOKIE['country'] a jiné).

Starší komentáře ke článku

Pokud máte zájem o starší komentáře k tomuto článku, naleznete je zde.

Štítky: Články

Mohlo by vás také zajímat

Nejnovější

1 komentář

  1. Petr Blažíček

    Zář 18, 2013 v 9:20

    Kanón na vrabce asi nebude nejlepším přirovnáním. Aplikace, ve které je třeba vybrat zemi ze seznamu určitě bude používat databázi tak jako tak.

    Odpovědět

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *