Textfeld nach veränderung abschicken
Jonny F.
- javascript
Hallöchen,
ich habe folgendes Problem.
Ich möchte gerne eine Suche in einer Datenbank programmieren, ja es ist ein Telefonbuch. Ich verwende html, php, sql
Ich habe ein Textfeld in dem ich ein Sucbegriff eingebe (Name, Vorname, Rufnummer) so jetzt kommt der hacken, wenn ich zum Beispiel eine Buchstabe oder eine Zahl in das Textfeld eingebe, soll das Textfeld direkt abschickt werden, also ich will Willi eingeben und wenn ich "w" eingebe wird "w" automatisch versendet und sucht schon mal alle Datensätze mit "w".
Folgendes habe ich aus probiert aber ohne erfolg.
<input type="text" name="suchbegriff" value="" OnChange="suchform.submit();">
Ich hoffe jemand hat eine Idee.
Gruß Jonny F.
<input type="text" name="suchbegriff" value="" OnChange="suchform.submit();">
Ich hoffe jemand hat eine Idee.
onchange feuert afaik erst, wenn der Wert geändert wurde und das feld den Fokus verliert.
Ggf. musst du mit onkeypress arbeiten oder beim onfocus ein settimeout starten, welches alle x Millisekunden prüft, ob sich der Feldwert geändert hat.
Mahlzeit Jonny F.,
wenn ich zum Beispiel eine Buchstabe oder eine Zahl in das Textfeld eingebe, soll das Textfeld direkt abschickt werden, also ich will Willi eingeben und wenn ich "w" eingebe wird "w" automatisch versendet und sucht schon mal alle Datensätze mit "w".
Dein Anliegen enthält bis hierhin schon mal zwei unschöne Überlegungen:
1.) Ich würde den Benutzer mindestens z.B. drei Zeichen eingeben lassen, bevor ich mit einer automatischen (Hintergrund-)Suche beginne. Warum? Datensätze, die irgendwo "w" enthalten, gibt es vermutlich wie Sand am Meer - und (Zwischen-)Ergebnislisten mit mehreren 1.000 Einträgen sind nicht wirklich hilfreich ...
2.) Wenn Du das Formular automatisch nach jedem Tastendruck (bzw. nach jedem neu hinzugefügten Zeichen) abschickst, entsteht für den Benutzer das Problem, dass das Formular neu geladen wird und dadurch unschöne Verzögerungen entstehen oder gar die letzten Eingaben überhaupt nicht berücksichtigt werden - oder hast Du als Formularziel zufällig ein anderes Fenster/Frame angegeben? Ich würde Dir eher raten, Dich zum Thema "AJAX" zu informieren und derartige "AutoCompletion"- bzw. "AutoSuggestion"-Listen so im Hintergrund abzufragen und in das Dokument einzublenden (wie z.B. bei Google).
Folgendes habe ich aus probiert aber ohne erfolg.
<input type="text" name="suchbegriff" value="" OnChange="suchform.submit();">
... was auch völlig klar ist, wenn man weiß, wann der Event "onchange" auftritt (<http://de.selfhtml.org/javascript/sprache/eventhandler.htm#onchange@title=Beachte das "Beachten Sie"!>). Du solltest zusätzlich den Event "http://de.selfhtml.org/javascript/sprache/eventhandler.htm#onkeyup@title=onkeyup" und ggf. noch "http://de.selfhtml.org/javascript/sprache/eventhandler.htm#onblur@title=onblur" nutzen.
MfG,
EKKi