geraldsinnlos: Datenverarbeiten mit JavaScript

Hallo Forum, ich möchte gerne eine Suchleiste programmieren, die ähnlich wie Google Vorschläge anzeigt. Ich würde das am Liebsten mit einer Datei lösen, die eingelesen wird, was nach meiner Kenntnis nur mit PHP geht. Ich würde dies aber gerne mit Js machen. Was sind da die besten Lösungsvorschläge? Vielen Dank im Vorraus!

PS: Kenntnisse: HTML5, CSS3, etwas PHP & JS

  1. Lieber geraldsinnlos,

    Ich würde das am Liebsten mit einer Datei lösen, die eingelesen wird,

    Datenformat JSON vielleicht?

    was nach meiner Kenntnis nur mit PHP geht. Ich würde dies aber gerne mit Js machen.

    JS versteht JSON. Mit einem XmlHttpRequest-Objekt (auch unter dem Schlagwort AJAX bekannt) könntest Du eine Datei via JavaScript einlesen.

    Liebe Grüße,

    Felix Riesterer.

  2. ich möchte gerne eine Suchleiste programmieren, die ähnlich wie Google Vorschläge anzeigt. Ich würde das am Liebsten mit einer Datei lösen, die eingelesen wird, was nach meiner Kenntnis nur mit PHP geht. Ich würde dies aber gerne mit Js machen.

    Als Erstes solltest du die Sachen richtig zuordnen. Änderungen an der im Browser angezeigten Seite kannst du nur mit Javascript durchführen, weil schlicht keine andere Sprache (genauer: kein anderer Interpreter) im Browser, in der Webseite zur Verfügung steht. An der Datenquelle kann das anders aussehen; handelt es sich um den Server, steht dir dort sicherlich PHP zur Verfügung (weil's zum Standardumfang gehört). Es gibt aber auch Javascript-Interpreter, es könnte Perl sein, Python, C, Bash usw. Ein Server bietet eine flexiblere Umgebung.

    Da du von einer Datei geschrieben hast, gehe ich mal davon aus, dass sie auf dem Server liegt und Möglichkeiten enthält, aus denen die Vorschläge ausgesucht werden. Du wirst dich in jedem Falle informieren müssen, wie du mit Javascript Daten vom Browser aus beim Server abfragst (Stichwort AJAX) und wie du Vorschläge anzeigst (zB Einblenden einer <ol>).

    Je nach Umfang der Möglichkeiten musst du dann entscheiden, ob du die Auswahl der Vorschläge serverseitig erledigen willst und nur die Vorschläge zum Browser sendest (so machen es Suchmaschinen), oder ob du alle Möglichkeiten in den Browser lädst und dort die Vorschläge aussuchst (vorteilhaft nur bei kleinem Umfang und falls die Daten überhaupt nicht vertraulich sind, es also egal ist, wenn man in einem Rutsch Kenntnis sämtlicher deiner Möglichkeiten erlangen kann).

    Falls du aus einer Wortliste Vorschläge machen willst, informiere dich dann über N-Gramme. In der Wikipedia gibt es einen Artikel dazu (Einzahl N-Gramm), der als Startpunkt dienen kann, auch wenn er auf den ersten Blick vielleicht etwas in die Irre führt. Dass im Artikel mehrmals auf die Anwendung in der Rechtschreibkorrektur hingeweisen wird, deutet aber schon an, dass du auf Basis einer N-Gramm-Liste deiner Möglichkeiten ratzfatz passende Vorschläge finden kannst, auch bei falscher Nutzereingabe. Vergleichst du hingegen stur komplette Wörter, wirst du nicht weit kommen.

    Ich hoffe, das reicht erstmal für den Einstieg.

  3. Hallo

    ich möchte gerne eine Suchleiste programmieren, die ähnlich wie Google Vorschläge anzeigt.

    So weit, so gut.

    Ich würde das am Liebsten mit einer Datei lösen, die eingelesen wird, was nach meiner Kenntnis nur mit PHP geht.

    Was für eine Datei läsest du gerne ein? Eine, in der die Suchvorschläge gelistet sind? Und: Wo hinein läsest du sie gern ein? Server? Browser?

    Ich würde dies aber gerne mit Js machen. Was sind da die besten Lösungsvorschläge?

    Wenn du das mit JavaScript im Browser lösen willst, musst du die Daten der möglichen Suchvorschläge in einem für JavaScript lesbaren Format mitliefern. Wenn da mehr als „ein paar“ Werte aufgelistet werden sollen, wird die zu übertragende Datenmenge schnell sehr und zu groß.

    Am sinnvollsten ist folgendes Vorgehen.

    Der Benutzer gibt mehr als ein Zeichen [1] ein. Nach jeder Eingabe liest du den Inhalt des Suchfeldes per JavaScript aus und sendest einen Ajax-Request an ein Skript auf dem Server (z.B. ein PHP-Skript), das mit den übermittelten Daten eine Datei oder eine Datenbank abfragt und im Ergebnis die passenden Begriffe an das anfragende Skript zurücksendet.

    Dieses nimmt nun die übermittelten Werte entgegen und generiert daraus eine Datalist für das Formularfeld.

    Vielen Dank im Vorraus!

    Pirat?

    Tschö, Auge

    --
    Wir hören immer wieder, dass Regierungscomputer gehackt wurden. Ich denke, man sollte die Sicherheit seiner Daten nicht Regierungen anvertrauen.
    Jan Koum, Mitgründer von WhatsApp, im Heise.de-Interview

    1. Es dürfte sinnvoll sein, die Prüfung erst ab vier oder fünf Zeichen durchzuführen. Da musst du ein wenig experimentieren. ↩︎

  4. Ich würde dies aber gerne mit Js machen.

    Deine Aufgabenbeschreibung ist sehr allgemein und damit unscharf. Das was Google im Suchfeld bietet, ist keinesfalls mit Javascript allein zu lösen und damit für einen Anfänger womöglich zu umfangreich. Auge hat es ja beschrieben.

    Javascript allein (ohne Server-Rückfrage) kann lokal Cookies setzen und lesen.

    Du kannst also Eingaben des Nutzers als Cookie(s) speichern und bei der nächsten Sitzung wieder vorschlagen.

    Linuchs