2017-02-01 1 views
0
  • IISのバージョンでオートコンプリート事業部を取り付けます。Windows Server 2012 R2
  • ルートフォルダ:D:サイト\ \デフォルト\ WWWRootで
  • サイトディレクトリ:D 8.5
    • サーバーのIIS :\サイト\既定\ WWWRootで\ウェブサイト
    • 言語:ASPは、JavaScript、HTML、AJAX

だから、このページには検索ボックスがあります。検索ボックスに名前を入力すると、ajaxを使用して別のページに接続し、検索条件を使用してデータベースにクエリを実行し、divエントリの検索結果のような結果をリアルタイムで返します速いリターン)。だから私はこれが働いている。ここに私の問題があります。 Div自体は検索ボックスに接続する必要があるので、より良い例がないため、何かを入力すると検索フィールドのドロップダウンのように動作するGoogleの検索ボックスが表示されます。私はいくつかの調査を行っており、HTML5にはこれを可能にする組み込みのタグがあるようです。残念ながら、私はHTML5を使用していません。どんな助けもありがとう。私がしたいのは、検索フィールドからの "ドロップダウン"のような動作をdivにして、望むならキーボードでスクロールできる結果を返すことだけです。私はそれが今見える方法のスクリーンショット(画像の左側)とそれが機能したい方法の例(画像の右側)のは、どういうわけか、エントリのテキストボックス

あなたの助けを前もってありがとう!ここで

ではJavaScript/HTML(メインページ)のコードは次のとおりです。

<script> 
    var xmlHttp 
    function showHint(str, box, thisForm, autoSubmit) 
    { 
    if (str.length==0) 
    { 
     document.getElementById("txtHint").innerHTML=""; 
     return; 
    } 

    xmlHttp=GetXmlHttpObject() 
    if (xmlHttp==null) 
     { 
     alert ("Your browser does not support this feature. Please search manually."); 
     return; 
     } 

    var url="gethint.asp"; 
    url=url+"?q="+str; 
    url=url+"&b="+box; 
    url=url+"&f="+thisForm; 
    url=url+"&a="+autoSubmit; 
    url=url+"&sid="+Math.random(); 
    xmlHttp.onreadystatechange=stateChanged; 
    xmlHttp.open("GET",url,true); 
    xmlHttp.send(null); 

    } 


function stateChanged() 
{ 
    if (xmlHttp.readyState==4) 
    { 
     document.getElementById("txtHint").innerHTML=xmlHttp.responseText; 
    } 
} 

function GetXmlHttpObject() 
{ 
    var xmlHttp=null; 
    try 
    { 

    // Firefox, Opera 8.0+, Safari 
    xmlHttp=new XMLHttpRequest(); 
    } 

catch (e) 
    { 
    // Internet Explorer 
    try 
    { 
     xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); 
    } 
     catch (e) 
    { 
     xmlHttp=new ActiveXObject("Microsoft.XMLHTTP"); 
    } 
    } 

return xmlHttp; 

} 


</script> 

<font face="calibri"> 
<form action="" method="post"> 
     <input type="text" id="txt1" onkeyup="showHint(this.value,'txt1','form1',true)" autocomplete="off" style="width: 250px;"/> 
     <div id="txtHint"></div> 
</form> 
</font> 

そして、ここではそれがクエリにをリッスンページのコードです:

ので
<!--#include file="Databases.asp"--> 
<% 

response.expires=-1 

Dim rsWords 

Dim rsWords_numRows 

Dim q 

Dim b 

Dim hint 

q=ucase(request.querystring("q")) 

b=(request.querystring("b")) 

f=(request.querystring("f")) 

a=(request.querystring("a")) 

hint="" 




Set Conn = Server.CreateObject("ADODB.Connection") 
    Conn.Open = "Provider=SQLOLEDB;Data Source=" & DatabaseServerR & ";Integrated Security=SSPI;Network Library=DBMSSOCN;Initial Catalog=" & Database_R & ";" 
    Set rsWords = Conn.Execute ("SELECT TOP 20 WKR_FLL_NM, WDW_LGON_ID FROM dbo.HPeepzs With(NoLock) WHERE WKR_FLL_NM LIKE'" + q + "%' OR WDW_LGON_ID LIKE'" + q + "%' OR WKR_ID LIKE'" + q + "%' ORDER BY WKR_FLL_NM ASC") 





If Not rsWords.EOF Then 

'If entrytype = 1 Then 
    'Do While Not rsWords.EOF 
    ' If trim(hint) = "" Then 
    '  hint = "<a href=""javascript:setTextBox('" & rsWords("PC_Name") & "','" & b & "','" & f & "','" & a & "');"">" & rsWords("PC_Name") & "</a>" 
    ' Else 
    '  hint = hint & "<a href=""javascript:setTextBox('" & rsWords("PC_Name") & "','" & b & "','" & f & "','" & a & "');"">" & rsWords("PC_Name") & "</a>" 
    ' End If 
    ' rsWords.MoveNext() 
    'Loop 
'Else 
    Do While Not rsWords.EOF 
     If trim(hint) = "" Then 
      hint = "<li> <a href=""javascript:setTextBox('" & rsWords("WDW_LGON_ID") & "','" & b & "','" & f & "','" & a & "');"">" & rsWords("WKR_FLL_NM") & " (" & rsWords("WDW_LGON_ID") & ")</a>" 
     Else 
      hint = hint & "<li> <a href=""javascript:setTextBox('" & rsWords("WDW_LGON_ID") & "','" & b & "','" & f & "','" & a & "');"">" & rsWords("WKR_FLL_NM") & " (" & rsWords("WDW_LGON_ID") & ") </a>" 
     End If 
     rsWords.MoveNext() 
    Loop 
'End If 

End If 

if trim(hint)="" then 

    response.write("Unable To Find Your Search") 

else 

    response.write(hint) 

end if 


rsWords.Close() 
Conn.Close 

Set rsWords = Nothing 
Set Conn = Nothing 
%> 

答えて

0

、私が持っています何をすべきか考え出した私は今、別の質問を持って、私は、検索フィールドの下にdiv要素を配置し、それが検索がマージンスタイル

<div id="txtHint" style="position:absolute;margin-top:2px;margin-left:0px;z-index: 99 !important;"></div> 

を使用して入力されたときにポップアップするポップアップのドロップダウンとして作用するが。それは私がマウスカーソルを使用してオートコンプリートリストから選択することができますが、キーボードの上下の矢印でリストをスクロールすることはできません。私はこれを試しました:

<script> 


var UP = 38; 
var DOWN = 40; 
var ENTER = 13; 

var getKey = function(e) { 
    if(window.event) { return e.keyCode; } // IE 
    else if(e.which) { return e.which; } // Netscape/Firefox/Opera 
}; 


var keynum = getKey(e); 

if(keynum === UP) { 
    //Move selection up 
} 

if(keynum === DOWN) { 
    //Move selection down 
} 

if(keynum === ENTER) { 
    //Act on current selection 
} 



</script> 

そしてdivにgetKey(e)関数を割り当てますが、ダイスは割り当てません。助言がありますか?ありがとう。

関連する問題