Autovervollständigung

daywalkertp

Erfahrenes Mitglied
Hi Leitz!

Ich hab nun eine Datenbank mit verschiedenen Ortsnamen.
Ich hab auch eine neue Seite erstellt wo man in ein Textfeld einen neuen Ortsnamen eintragen kann um ihn in die Tabelle zu speichern.

Folgendes Problem:
Es geht z.B. um immer wiederkehrende Eingaben in diesem TextFeld. Nehmen wir mal an, es sind die Städte Berlin, Bonn, Potsdam, Dresden, Köln, München usw. in der DB vorhanden. Wenn der Benutzer jetzt den ersten Buchstaben eingibt - ein 'M' - , dann soll sofort der Rest 'ünchen' erscheinen. Tippt er ein 'B' erhält er zunächst 'Berlin', weil der zweite Buchstabe weiter vorne Alphabet steht.

Gibt es da vielleicht schon eine Funktion oder so?
Wäre euch echt dankbar!
 
Das kann der User im Browser einstellen, du selbst hast da keine Gewalt drüber.

Möglich wäre zwar sicher das Komplettieren eines Textfeldes über eine Datenbank, damit wäre aber afaik immer ein Seiten-Reload verbunden - und ob das Sinn macht... ;)

Hast du vielleicht eine Beispiel-URL parat?

Geist
 
Ich hab da schonmal was ähnliches gefunde. Der Code ist aber noch nicht ganz ausgereift :(

Code:
Code:
<body>
<script>
namen = new Array("Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag","Sonntag");
function test(text){
   for(i=0;i<7;i++){
   var texty = text.substring(0,2).toLowerCase();
   var namy = namen[i].substring(0,2).toLowerCase();
   if(texty == namy){
  document.getElementById("hugo").value =namen[i];
    }
   }
 }
</script>
<input type="TEXT" onKeyUp="test(this.value)" id="hugo">
</body>
 
Was reicht dir denn daran nicht?

Das hat übrigens mit einem Datenbankabgleich nix zu tun, sondern ist alles soweit statisch, wenn du nicht gerade den JavaScript-Code dynamisch erzeugen lässt. :)

Cross-browser-kompatibler und vollständiger ist übrigens folgender Aufbau:
PHP:
<script type="text/javascript" language="JavaScript">
<!--

namen = new Array("Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag","Sonntag");

function test(text) {
    var texty = text.substring(0, 2).toLowerCase();
    for(i=0; i<7; i++) {
        var namy = namen[i].substring(0, 2).toLowerCase();
        if (texty == namy) {
            document.formularname.textfeldname.value  = namen[i];
        }
    }
}

//-->
</script>
im <head>-Teil und das Formular so gestaltet im <body>-Tag:
PHP:
<form name="formularname">
<input type="text" name="textfeldname" onKeyUp="test(this.value)">
</form>
hth,
Geist
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück