jQuery1.8-UIの新しいオートコンプリートをいじっています。次の形式でデータを提供しました
["val1", "val2", "val3"]
これはストアドプロシージャからのものですが、文字列として出力されます。何らかの理由でこれはまったく機能しませんが、javascript変数を使用して同じデータを提供すると
var data = ["val1", "val2", "val3"];
その後、これは正常に動作します。
<script type="text/javascript">
$(function()
$("#txtClient").autocomplete({
source: "/intranet/common/scripts/IntranetLists.aspx?ListType=C"
});
});
</script>
クエリ文字列を使用して必要なデータを提供するページがあります。これは一時的なものですが、以前にベーシスタンスのオートコンプリートを使用したときに機能しました。
何か案は?
編集
ソースは、エントリを別々の行に出力するだけです。これで、出力はJSON形式で実行されます。私が理解していないのは、入力がデータのソースへのクエリとしてデータをどのように提供するかです。私が言っているように、私は新しいキーを入力するたびに呼び出されるスクリプトを使用しています。
これが私が持っているコードです(これはサードパーティのオートコンプリートプラグインでうまく機能したことを考慮に入れてください)
<%
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
%>
新しいオートコンプリートのドキュメントには、渡されたクエリ文字列が実際には「term」と呼ばれているとは記載されていません(search.phpファイルから見つけました)。私はこれをVB.NETで行っています。