Hi,
Ich hab ein Forumlar, wo man Name, Ort, Plz, usw. eingibt.
Wenn man jetzt die Plz eingibt, würd ich gern den passenden Ort dazu per JS einfügen lassen.
Das das Mapping nicht ganz sauber funktioniert wurde Dir ja schon gesagt, aber das sind recht wenig Ausnahmen, prinzipiell reicht das durchaus.
Zuerst brauchst Du einmal die Liste mit den Postleitzahlen, dafür wäre z.B. die OpenGeoDB
wäre z.B. passend, da die Post die Datenbanken nicht mehr anzubieten scheint (oder jetzt kostenpflichtig, das habe ich nicht kontrolliert). Die Opengeodb gibt es auch als CSV-Dateien (Mit "text" im Dateinamen, die aktuellen sind UTF-8 codiert). Ich habe mir mal die Datei opengeodb-0.2.3e-UTF8-text-plz.txt vorgenommen. Im Feld 7 ist der Ort und im Feld 10 die Postleitzahl. Mit Hilfe von ein wenig Perl (ich habe es mit cat opengeodb-0.2.3e-UTF8-text-plz.txt | sed -e 's/^#.\*$//g' | perl -F\; -ane '$plz = @F[9]; $plz =~ s/[\n\r]//; print "[\"",@F[6], "\",\"", $plz ,"\"],\n"; probiert) kann man daraus ein Javascriptarray basteln (im obigem Falle käme dann obendrüber noch ein "plz = new Array(" und untendrunter, nach der Entfernung des allerletzten Kommas, noch ein ");"). Es ist knappe 200kib groß, bei komprimierter Übergabe knapp 60 kib. Ist zwar hart an der Grenze aber noch akzeptabel.
Einige Städte haben mehrere Postleitzahlen, die sind durch Komma getrennt. Wem die deshalb erforderliche lineare Suche zu lahm ist, muß sich halt die Mühe machen es aufzudröseln, da sich die Liste sonst nicht nach den Postleitzahlen sortieren läßt.
Bei entspr. Implementation funktioniert das auch in älteren Browsern. AJAX tut es nicht und erfordert zudem beim IE eingeschaltetes ActiveX, wenn ich mich nicht irre, man möge mich korrigieren.
so short
Christoph Zurnieden