Land Ländercode zuweisen in JavaScript?

6 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Du könntest die Länder / Codes einfach in ein Array packen und dann immer nur das jeweils andere abfragen, gibt solche Arrays sogar vorgefertigt: https://gist.github.com/maephisto/9228207

andi3366 
Fragesteller
 07.08.2018, 14:01

Und wie frage ich ab, welche Zeile vom Array mit var country übereinstimmt?

0
mastema666  07.08.2018, 14:08
@andi3366

Du müsstest den in deinem Fall ggf umdrehen, also mit den Ländernamen als Keys und den Codes als Werten, mit dem oben verlinkten Array, nur umgekehrt, also z.B. so in der Art:

var country = isoCountries[$('#myInput').val()];
0

Du könntest dir die Daten von einer Seite wie https://www.iso.org/obp/ui/#search über Excel in eine CSV und von dort als json Datei konvertieren ( https://www.iso.org/obp/ui/#search ).

Dann greifst du einfach auf das Json-Objekt zu.

Ein Anfang könnte folgender sein: 

json-Datei: 

var Laendercodes = { 
"CODES":
[
  {
    "English_short_name": "Afghanistan",
    "French_short_name": "Afghanistan (l')",
    "Alpha2": "AF",
    "Alpha3": "AFG",
    "Numeric": 4
  },
//...
  {
    "English_short_name": "Gabon",
    "French_short_name": "Gabon (le)",
    "Alpha2": "GA",
    "Alpha3": "GAB",
    "Numeric": 266
  },
  {
    "English_short_name": "Gambia (the)",
    "French_short_name": "Gambie (la)",
    "Alpha2": "GM",
    "Alpha3": "GMB",
    "Numeric": 270
  },
  {
    "English_short_name": "Georgia",
    "French_short_name": "Géorgie (la)",
    "Alpha2": "GE",
    "Alpha3": "GEO",
    "Numeric": 268
  },
  {
    "English_short_name": "Germany",
    "French_short_name": "Allemagne (l')",
    "Alpha2": "DE",
    "Alpha3": "DEU",
    "Numeric": 276
  },
  {
    "English_short_name": "Ghana",
    "French_short_name": "Ghana (le)",
    "Alpha2": "GH",
    "Alpha3": "GHA",
    "Numeric": 288
  },
  {
    "English_short_name": "Gibraltar",
    "French_short_name": "Gibraltar",
    "Alpha2": "GI",
    "Alpha3": "GIB",
    "Numeric": 292
  }
  //...
  ]
  }

In der HTML-Datei suchst du dann in einer Schleife nach dem vollen Namen und gibst den Alpha-2-Code zurück.

https://pastebin.com/SPK1Q80V

Woher ich das weiß:Berufserfahrung – Programmierer

Warum nicht gleich ein <select> mit den richtigen Werten?

<select name="laendercode">
  <option value="DE">Germany</option>
  <option value="FR">France</option>
  ..
</select>

Die Werte kannst du in PHP über eine Schleife erstellen, vorher alle in ein Array packen.

Woher ich das weiß:Berufserfahrung

Wie wäre es mit switch (inkl. case und default) als funktion?

Verwende i18n. So reichen dir folgend diese drei Zeilen:

var countries = require("i18n-iso-countries");
var country = $('#myInput').val();
country = countries.getAlpha2Code(country, "en");