AJAX live search
Som overskriften antyder så er jeg i gang med at lave en live search funktion primært for at forstå lidt mere at javascript og sætte mig ind i AJAX tankegangen.Jeg har fulgt W3's tutorial og det virker fint, men støder i et problem når min eksterne fil skal hente fra en db i stedet for blot forudbestemte array's.
Min "hovedside" ser sådan ud:
<script type="text/javascript">
var xmlHttp
function showHint(str)
{
if (str.length==0)
{
document.getElementById("txtHint").innerHTML=""
return
}
xmlHttp=GetXmlHttpObject()
if (xmlHttp==null)
{
alert ("Browser does not support HTTP Request")
return
}
var url="results.asp"
url=url+"?q="+str
xmlHttp.onreadystatechange=stateChanged
xmlHttp.open("GET",url,true)
xmlHttp.send(null)
}
function stateChanged()
{
if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
{
document.getElementById("txtHint").innerHTML=xmlHttp.responseText
}
}
function GetXmlHttpObject()
{
var objXMLHttp=null
if (window.XMLHttpRequest)
{
objXMLHttp=new XMLHttpRequest()
}
else if (window.ActiveXObject)
{
objXMLHttp=new ActiveXObject("Microsoft.XMLHTTP")
}
return objXMLHttp
}
</script>
</head>
<body>
<form>
First Name:
<input type="text" id="txt1" onkeyup="showHint(this.value)">
</form><p>Suggestions: <span id="txtHint"></span></p>
Og min eksterne fil ser sådan ud:
<!--#include file="includes/connect.asp"-->
<%
strSog = Request.QueryString("q")
strSQL = "SELECT * FROM content where tekst like '%" & strSog & "%' or headline like '%" & strSog & "%'"
set rs = Conn.Execute(strSQL)
Do while not rs.EOF
Response.Write "<a href=""http://www.jblog.dk/arkiv/" & rs("id") & "/"">" & rs("headline") & "</a><br>"
rs.Movenext
Loop
rs.Close
set rs = Nothing
%>
<!--#include file="includes/close.asp"-->
Umiddelbart ville jeg tro at det forholder sig på samme måde som med array's, der fungerede fint, men den melder altså fejl. Jeg kan få den til at virke efter hensigterne, dog uden æøå (tager jeg fat i senere), men næsten halvdelen af gangene melder den om kørselsfejl. Hvad i alverden er der galt? Er det forkert at bruge include i en ekstern fil?
Det skal lige siges at jeg har fjernet <html> osv fra ovenstående.
