Wie bekomme ich die Ausgabe von PHP zu typeahead?

8

Ich verwende twitter typeahead und php als Backend zum Abrufen von Daten von mysql. Aber ich kann keine Vorschläge sehen, wenn ich mit der Eingabe in das Textfeld beginne. Ich denke, da die PHP-Ausgabe JSON-codiert sein muss.

Wie kann ich die Ausgabe codieren?

Ausgabe:

%Vor%

html:

%Vor%

getvalues.php

%Vor%     
Mithun Raikar 08.05.2015, 07:29
quelle

3 Antworten

1

Um die Ausgabe als JSON zu kodieren, müssen Sie zuerst ein Array mit den Ergebnissen erstellen und json_encode() verwenden, wie folgt:

%Vor%

Aber standardmäßig Ergebnisse sind html vor in typeahead gezeigt entkam, so dass Sie das Ergebnis erhalten wan't Sie erwarten, aber den HTML-Codes in der Vorschlagsliste. So entwerfen Einträge mit eigenen HTML-Templates sollten Sie wie beschrieben hier verwenden.

Ihre $result -Array-Einträge könnten wie folgt aussehen, um die Felder in Ihrem html anzugeben:

%Vor%

... und dann wie beschrieben in die Vorlage eingefügt werden.

Eine andere Sache: Die prefetch Option, die Sie verwenden, nicht einer von typeahead, sondern von Bluthund, die in der Regel zusammen mit typeahead verwendet wird, sondern muss zunächst initialisiert werden und gegeben als source auf typeahead . Hier finden Sie aktuelle ​​hier , es ist ganz einfach.

Bloodhound auf es ist Teil feste Datensätze als Arrays nehmen können (über die local Option), feste Datensätze über URL (über die prefetch Option) oder können Anfragen an URLs tun, das ist, was Sie apperently tun wollen, wenn Sie den Wert von $_GET["q"] in Ihrem PHP-Code abrufen. In diesem Fall müssten Sie $q in Ihrem SQL verwenden und den Bluthund mit der Option remote wie folgt initialisieren:

%Vor%

Sie brauchen nicht zu tun, da es wieder von typeahead.js auf der Client-Seite gefiltert wird ... es ist nur eine Frage der Leistung und die Menge der Ergebnisse. Wenn es nur ein paar gibt, benutze die Option Bluthunde prefetch .

    
johjoh 08.05.2015 10:37
quelle
0

Als Erstes sollten Sie mysqli anstelle von mysql verwenden und auch nicht Ihre $_GET in Ihrer Abfrage verwenden. Nicht sicher, ob es benötigt wird.

Für Ihren Code ist nicht sicher, wie der Prefetch verwendet wird. Ich selbst benutze Bluthund, der auch auf dem offiziellen twitter typeahead github verwendet wurde. Es sieht so aus:

%Vor%

Dies wird die Daten von Ihrem Server über Ajax-Anruf erhalten. Sie geben ein JSON ohne das gesamte HTML-Markup von Ihrem Ajax-Aufruf an Ihre Typehead zurück. Das HTML Markup kann in typeahead

gemacht werden %Vor%

Und Ihre PHP-Datei sollte so aussehen:

%Vor%     
DutchEcho 08.05.2015 13:01
quelle
0

Vielleicht möchten Sie Ihre Liste für typeahead in eine JSON-Datei einfügen und Ihr Skript folgendermaßen ändern:

%Vor%

Die json-Datei sollte sein:

%Vor%     
keikoku92 08.05.2015 10:23
quelle

Tags und Links