JQuery Autocomplete, füllen Sie mit Daten aus pHp-json
Bin ich wieder ein JSON-kodiertes array: echo(json_encode($data));
von php und ich möchte es zum Auffüllen der box empfehlen von JQuery-autocomplete. Ich bin mit diesem:
$("#field").autocomplete({
source : "SearchTest.php",
maxLength: 5
});
Nicht sicher, warum dies nicht funktioniert. Nach jedem drücken wird, würde ich die Daten abrufen und füllen Sie das vorschlagen-box mit, dass die Daten, die ich nicht will autocomplete auf Sortieren, und wählen Sie für mich, die ich mache, die server-Seite. Es ist nur eine Liste von Zeichenfolgen für jetzt. Können anpassen, wie die Daten präsentiert würden auch nett sein.
Bearbeiten: Verändert die Quelle zu posten:
$("#field").autocomplete({
source : function(request, response) {
$.post("SearchTest.php", request, response);
},
maxLength : 5
});
Immer diese Fehlermeldung jetzt:
Uncaught TypeError: Cannot use 'in' operator to search for '1240' in
Notice: Undefined index: field in /.../SearchTest.php on line 25
Zeile 25 : $whatTheyWantToSearch = $_POST['field'];
- Welche Fehler haben Sie? Können Sie fügen Sie Ihrem PHP-code, den JS-code scheint Ok.
- Keine Fehler. Ich merkte, ich bin nicht senden nichts SearchTest.php. Wie kann ich post an den server und empfängt die JSON zum Auffüllen der autocomplete?
- Könnten Sie mir zeigen, Ihre php-code?
- siehe edit
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen Sie es mit
ajax
JSON-Antwort Beispiel in SearchTest.php
Demo-Fiddle
Remote JSONP-Demo
JSON
format aus SearchTest.php Antwort aktualisiert, Hinzugefügtmethod: 'post',
JSON
format und Demo-Fiddleheader('Content-type: application/json');
und stellen Sie sicher, es gibt keineecho
,white space
oderplan text
vorheader
FunktionJSON Response Example in SearchTest.php
jQuery
undjQuery UI
Sie verwenden? Versuchen<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>
$user_entered_text = $_POST['term']
zu bekommen, was der Benutzer eingegeben haben, im Feld Eingabe oder änderung{term: request.term}
zu{field: request.term}
dann können Sie Zugriff auf user-input wie diese$field = $_POST['field']
;Autocomplete event documentation for that
api.jqueryui.com/autocomplete/#event-selectden korrekten json-format, für das von php:
Vom js wich bedeutet []-array von {} Objekte.
In meinem Fall für autocomlete widjet dies funktioniert gut:
Vielleicht stimmt etwas mit dem parameter source an. Sollte es sein '/Searchtest.php'?
http://api.jqueryui.com/autocomplete/#option-source
So etwas wie dies ist der beste Weg. die Funktionen json_encode tun alle Arbeit für Sie.