jQuery - Ort nach Plz Eingabe mit Ajax vervollständigen

Erstellt am 17. September 2007  
1270
vote

Kleines Script, um nach einer Eingabe der Plz den entsprechenden Ort zu ermitteln:

jQuery Code:


$(document).ready(function()
{

    $("#plz").bind("change", function() {
        $.ajax({
           type: "GET",
           url: "plz.php",
           data: "plz="+$("#plz").val(),
           success: function(msg){
               $("#ort").val(msg);
           }
         });
    } );

});

html Code:


Plz: <input name="plz" id="plz" type="text" /> Ort <input name="ort" id="ort" type="text" />

php Code (Datei plz.php)


<?php

if (!empty($_GET['plz'])) {

    
$link mysql_connect('localhost''root''');

    if (!
$link) {
        die(
'Verbindung nicht möglich : ' mysql_error());
    }

    
$db_selected mysql_select_db('---------datenbank'$link);
    if (!
$db_selected) {
        die (
'Kann Tabelle nicht benutzen : ' mysql_error());
    }

    
$result mysql_query("SELECT city FROM zipcodes WHERE zipcode = ".$_GET['plz']);
    if (!
$result) {
        echo 
'Abfrage konnte nicht ausgeführt werden: ' mysql_error();
        exit;
    }
    
$row mysql_fetch_row($result);

    echo 
$row[0];

    
mysql_close($link);

}

?>

Natürlich braucht man noch die entsprechende Postleitzahlen Datenbank. Die Daten gibt es zB auf der Homepage der Post.

Kommentare

Leider nicht brauchbar.

Leider nicht brauchbar. Einige Postleitzahlen sind mehreren Städten zugeordnet, es wird jedoch mit diesem Skript nur die erste Stadt aus der Datenbank ausgewählt. Ein Pulldown o.ä. wäre praktisch.

Ich finde es klasse das

Ich finde es klasse das Script. Ich versuche schon lange mit jQuery Ajax Abfragen hin zubekommen. Das ist ist entlich mal ein code mit dem ich diese Sprache etwas besser verstehen kann. Es ist zwar schade das mit dem Pulldown aber das ist doch nur ein beispiel. Supppppper Danke

Finde ich toll - solange man

Finde ich toll - solange man es als Idee zur Lösung und nicht als fertige Lösung anschaut im Sinne eines How To.

vor allem schön unsicher

vor allem schön unsicher das ganze...

Das ist ein Demo, nicht mehr

Das ist ein Demo, nicht mehr und nicht weniger ;)

Hallo, wie kann man es bitte

Hallo,

wie kann man es bitte erweitern, so daß auch die Vorwahl aus der DB gelesen wird ?
Ist das überhaupt möglich ?

Vielen Dank
Gruß
Pommes

Hallo. Geht das auch, das

Hallo.
Geht das auch, das mehrere Felder automatisch gefüllt werden?

Du könntest dir vom php

Du könntest dir vom php Script nicht nur den Ort sondern mehrere Werte zurückgeben lassen, die du mit zB | von einander trennst und den Rückgabewert verarbeitest

var teilen = msg.split('|');
$("#ort").val(teilen[0]);
$("#anderes_feld").val(teilen[1]);

Wieder nur als Anregung ;)

Danke! Alles geklappt.

Danke! Alles geklappt.

Hallo zusammen, danke

Hallo zusammen,
danke funktioniert alles, aber
ich habe eine Frage, kann man #ort mit autocomplete.js binden?
Weil bei mehrere Orte gibts nur ein PLZ.
Ich habe schon mehrere Tage probiert, aber nichts geklapt und auch andere Variante.
Autocomplete mit einem "input" und zusammen mit plz&ort funktieoniert, aber das brauche ich nicht.
Gibt es vielleicht auch andere Lösung?
Brauche Ihre Hilfe...