ZipToCity


ZipToCity - Automatisches Füllen des Ort-Feldes nach Eingabe der Postleitzahl

Version 1.2, 16/08/2004
Freie Software (LGPL Lizenz) von: Thorsten Sprenger (ziptocity@3sprenger.de)

 

ZipToCity ist eine Javascript-Funktion, die die Eingabe der Postadresse in einem HTML-Formular erleichtert. Nach Eintippen der Postleitzahl und dem Wechsel in das Ort-Eingabefeld wird der entsprechende Ort sofort angezeigt. Dies erhöht nicht nur den Komfort, sondern auch die Adressqualität, denn der Benutzer sieht bei fehlerhaften Postleitzahlen sofort den falschen Ort und kann seine Eingabe korrigieren.

Demo (hierzu wird das Unterverzeichnis "ziptocity" benötigt - bitte "ZIPTOCITY.ZIP" entpacken)

 Geben Sie eine Postleitzahl ein, z.B. 21224 (Rosengarten) :
				
      Postleitzahl:  
Ort:

Reines statisches HTML+Javascript - keine serverseitigen Scripts erforderlich

ZipToCity lädt die Postleitzahlenbasis aus einer Liste von statischen HTML-Dateien. Vorteile:


Browserkompatibilität

ZipToCity ist getestet auf IE5.0, IE5.2 (Mac), IE5.5, IE6.0, Opera 5/6/7, Mozilla.
ZipToCity unterstützt nicht Netscape 4, da dieser Browser den W3C-Standard <IFRAME> nicht unterstützt.


Einbinden von ZipToCity in HTML-Formulare

Der Quellcode des obigen Formulars ist:

<form name="register">
 <script src="ziptocity/ziptocity.js"></script>
 
<iframe name=
 "ziptocityframe" src=
 "ziptocity/leer.gif" frameborder="0" height="0" width= "0"></iframe> Postleitzahl:
 
       <input  type="text" name="zipcode" id="zipcode" size="5" 
                       onChange="javascript:ziptocity('zipcode','cityname')"> <br>
       Ort:           <input type="text" name="cityname" id="cityname" size="30"><br>
</form>
			


Unterstützung weiterer Länder

Der Javascript-Funktion "ziptocity" kann optional ein dritter Parameter 'countrycode' mitgegeben werden (default: "de"). Beispiel:

<form name="register">
 <script src="ziptocity/ziptocity.js"></script>
 <iframe name="ziptocityframe" src="ziptocity/leer.gif" frameborder="0" height="0" width="0"></iframe>
 
       Land:          <input type="text" name="countrycode" id="countrycode" value="de"> 
       Postleitzahl:  <input type="text" name="zipcode" id="zipcode" size="5" 
                       onChange="javascript:ziptocity('zipcode','cityname','countrycode')"> <br>
       Ort:           <input type="text" name="cityname" id="cityname" size="30"><br>
</form>
			


Postleitzahlenbasis

Die Postleitzahlen stammen aus der OpenGeoDB-Datenbasis www.opengeodb.de.

Ein Update ist -wenn überhaupt- nur sehr selten erforderlich, da sich PLZ-Ort-Zuordnungen nicht ändern und jährlich nur sehr geringe neue PLZ-Mengen hinzukommen. Falls ein Nutzer eine solche neue PLZ eingibt, so wird lediglich kein Ort angezeigt, was akzeptabel ist. Soll dennoch ein Update durchgeführt werden, so muß die aktuelle OpenGeoDB-PLZ-Liste per download gespeichert werden und kann durch das Script convert_opengeodb_to_js.vbs in die ca. 850 HTML-Dateien konvertiert werden.

Das Archiv ZIPTOCITY.ZIP enthält nur das Dateiverzeichnis für DE. Falls A und CH benötigt werden, so müssen die Scripts CONVERT_AUSTRIA.BAT und CONVERT_CH.BAT gestartet werden. Daraufhin werden die Verzeichnisse "\webroot\ziptocity\at" und "\webroot\ziptocity\ch" erzeugt.

Falls eine andere Datenbasis eingesetzt werden soll: Das Script convert_zipcodes_to_js.vbs konvertiert eine Input-PLZ/Orte-Datei in die Verzeichnisstruktur mit HTML-Dateien. Die Input-Datei enthält je PLZ eine Zeile im Format PLZ=Ort .

Es gibt ca. 210 mehrdeutige Postleitzahlen (solche, zu denen mehrere Orte aufgeführt sind). Diese werden nicht berücksichtigt (d.h. es wird vorsichtshalber kein Ort angezeigt).