ローカル配列と他のページからのリモート ソース データの 2 つのケースで、Jquery からの単純なオートコンプリートから始めています。両方のデータは同じであると確信していますが、オートコンプリートの動作は異なります。以下の私のコードを参照してください:
1.ローカル配列あり
Javascript コード
$(document).ready(function() {
$("#txtArr").autocomplete({
source: programmingLang,
change:function(event, ui){
if (ui.item==null)
$('#txtArr').val(-1);
}
})
})
プログラミング言語配列:
var programmingLang = [{ "value": "ActionScript", "id": 31 }, { "value": "AppleScript", "id": 2 }, { "value": "JavaScript", "id": 3 }, { "value": "Haskell", "id": 33 }, { "value": "Architects", "id": 27 }, { "value": "Scheme", "id": 1 }, { "value": "PHP", "id": 29 }, { "value": "Marketing", "id": 25 }, { "value": "Perl", "id": 15 }, { "value": "Training", "id": 32}];
ブラウザから、p、...、リストに表示された「p」を含むアイテムを入力しました-完璧です:)
2. ソース データによるリモート
Javascript コード
<script type="text/javascript">
$(document).ready(function() {
$("#txtArr").autocomplete({
source: "script.asp",
change:function(event, ui){
if (ui.item==null)
$('#txtArr').val(-1);
}
})
})
スクリプト.asp
<%
Response.ContentType = "application/json; charset=utf-8"
Response.Write("[{ ""value"": ""ActionScript"", ""id"": 31 }, { ""value"": ""AppleScript"", ""id"": 2 }, { ""value"": ""JavaScript"", ""id"": 3 }, { ""value"": ""Haskell"", ""id"": 33 }, { ""value"": ""Architects"", ""id"": 27 }, { ""value"": ""Scheme"", ""id"": 1 }, { ""value"": ""PHP"", ""id"": 29 }, { ""value"": ""Marketing"", ""id"": 25 }, { ""value"": ""Perl"", ""id"": 15 }, { ""value"": ""Training"", ""id"": 32}]")
%>
ブラウザーから: p と入力します ... 配列内のすべてのアイテムが一覧表示されます :(
両方がローカル配列と同じように機能するように修正するにはどうすればよいですか?
どうもありがとう。
それは今動作します。elliottjmillsのアドバイスと同様にscript.aspを変更します。
<%
Response.ContentType = "application/json; charset=utf-8"
strSql="SELECT * FROM HR_Employee WHERE **Fullname like '%" & request.QueryString("term")** & "%'"
strconn="PROVIDER=SQLOLEDB;DATA SOURCE=...;DATABASE=...;USER ID=...;PASSWORD=...;"
set conTem=Server.CreateObject("ADODB.Connection")
conTem.Open(strconn)
Set rsElementTem = Server.CreateObject("ADODB.Recordset")
rsElementTem.Open strSql,conTem,3,3
strArr=""
if not rsElementTem.EOF then
rsElementTem.MoveFirst
'rsElementTem.Filter="Fullname like '*" & **request.QueryString("term")** & "*'"
do while not rsElementTem.EOF
if strArr<>"" then strArr=strArr & ","
strArr=strArr & "{"&_
"""value"":""" & rsElementTem("Fullname") & """, ""id"":" & rsElementTem("PersonID") & "}"
rsElementTem.MoveNext
loop
end if
Response.Write "[" & strArr & "]"
%>