Autocomplete jQuery 1.8-UI JSON-Format
Ich bin liebäugelt mit dem neuen AutoVervollständigen in jQuery 1.8-UI. Ich habe die Daten im folgenden format
["val1", "val2", "val3"]
Dies ist aus einer gespeicherten Prozedur die Ausgabe als string. Aus irgendeinem Grund funktioniert das nicht an allen, aber, wenn ich liefern die gleichen Daten über eine javascript-variable
var data = ["val1", "val2", "val3"];
Dann funktioniert das einwandfrei.
<script type="text/javascript">
$(function()
$("#txtClient").autocomplete({
source: "/intranet/common/scripts/IntranetLists.aspx?ListType=C"
});
});
</script>
Ich habe eine Seite, die liefert alle Daten, die ich möchte mithilfe von query-strings. Es ist eher temporär, aber es funktioniert, wenn ich vorher verwendet bassistence der AutoVervollständigen -.
Irgendwelche Ideen?
BEARBEITEN
Quelle Ausgänge einfach einen Eintrag auf separaten Zeilen. Nun die Ausgabe funktioniert es mit JSON-format. Was ich nicht verstehe, ist, wie der input stellt die Daten als Abfrage an die Datenquelle. Als ich sage, ich verwende ein Skript, welches sollte aufgerufen werden, jedes mal, wenn ich einen neuen Schlüssel eingeben.
Hier ist der code, den ich habe (berücksichtigen Sie diese funktionierte mit einem Drittanbieter-autocomplete-plugin)
<%
Dim MyCmd As New dbExact("proc_Intranet_Lists")
MyCmd.cmd.Parameters("@List").Value = Request.QueryString("ListType")
If Request.QueryString("Top") <> Nothing Then
MyCmd.cmd.Parameters("@Top").Value = Request.QueryString("Top")
End If
MyCmd.cmd.Parameters("@Code").Value = Request.QueryString("term")
MyCmd.cmd.Connection.Open()
Dim results As New StringBuilder()
results.Append("[")
Dim dr As SqlDataReader = MyCmd.cmd.ExecuteReader
If dr.HasRows Then
While dr.Read
results.AppendLine("'" + dr(0).ToString() + "',")
End While
Else
results.Append("None Found")
End If
results.Remove(results.Length - 2, 2)
results.Append("]")
Response.Write(results.ToString())
results = Nothing
MyCmd.cmd.Connection.Close()
MyCmd = Nothing
%>
In der Dokumentation für die neue AutoVervollständigen-nicht überall, dass der query-string übergeben wird, heißt eigentlich "Begriff" (die fand ich heraus, aus der search.php Datei). Ich Tue dies in VB.NET.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Realistisch, ich sollte schreiben Sie ein tutorial für diese, denn es gibt nicht viel Dokumentation. Wenn Sie jQuery verwenden möchten neue AutoVervollständigen-in jQuery-UI-1.8 dann hier ist, wie Sie es tun.
Persönlich habe ich eine generische web-handler. Ich bin unter der Annahme, dass diese besser sind, weil Sie nicht über den regulären Anfrage "pipeline" und stattdessen nur zwei "Elemente", eine Eigenschaft, und eine sub-routine aufgerufen
ProcessRequest
.Die Art, wie ich es ist die ich geschrieben habe, eine gespeicherte Prozedur, die dauert-set Argumente, um zu bestimmen was AutoVervollständigen-ich will. Zum Beispiel, wenn ich verwenden möchten, der autocompleter Liste einiger Länder, oder ich möchte es verwenden, um die Liste mit den Namen der Mitarbeiter, dann gebe ich einen bestimmten query-string zu ermitteln was ich will zurück. Dies macht es sehr flexibel.
Ich bin sicher, es gibt viele andere Wege, dies zu tun, aber das ist nur was für mich gearbeitet. Ich benutze die AutocompleteItem CDT, weil die benannten Variablen sind das, was verwendet werden, in die jQuery-Autocomplete. Standardmäßig verwendet es
id
undvalue
. Sie können angeben, alles, was Sie wollen, aber dann haben Sie zu gehen und formatieren Sie Ihre Gegenstände selbst über die Ereignisse in jQuery.Glücklicherweise .NET können Sie serialisieren der Daten, aber Sie können dies tun, in PHP als auch mit
json_encode
. Finden Sie die PHP-Beispiel in der jQuery UI herunterladen.Schließlich, hier ist die jQuery die ich verwendet habe. Ich habe eine null-Verzögerung, weil es eine schnelle, lokale server.
Hoffentlich hilft Sie bei der Verwendung von jQuery UI 1.8 ist AutoVervollständigen.
BEARBEITEN Wenn jemand irgendwelche Empfehlungen zur Verbesserung der generische handler, fühlen Sie sich frei, um showo mir. Ich merke, ich bin re-instanziieren der AutocompleteItem Objekt, aber jedes mal, wenn Sie dies nicht tun, wird es halten Sie die alt-Werte für einige Grund, trotz re-initialisieren Sie die Variablen mit neuen Werten. Cheers.
Fand ich das JSON-format Recht einfach. Sie können sich die Antworten im firebug mit der demo auf diese Seite : http://jqueryui.com/demos/autocomplete/#event-change .. hier ein Beispiel :
Dein Beispiel ist nicht wirklich klar genug. Aber wenn Sie php verwenden, um füllen Sie das AutoVervollständigen-Variablen, ich würde nur echo im javascript:
Js:
PHP
Aber ich bin mir nicht sicher, ob dies die Antwort, die Sie suchen.