I am currently trying to create a live search box that as I type it will start displaying results that match.

Here is an example http://www.w3schools.com/php/php_aja...p?output=print but it retrieves its data from an XML file, I need mine to retrieve from a column called FirstName within a table of an Access database.

Any help would be much appreciated.

Below are the two files I have created so far, which might be completely wrong.

Server Code: livesearch.asp

<%
set conn=Server.CreateObject("ADODB.Connection")
conn.Open "TestDB"
Set RS = conn.Execute( "SELECT FirstName FROM Table WHERE FirstName like '" & Request("q") & "%'")
Response.Write RS.getString( )
RS.Close
conn.Close
%>

HTML File: Test.html

<html>
<head>
<script type="text/javascript">
function showResult(str)
{
if (str.length==0)
{
document.getElementById("livesearch").innerHTML="";
document.getElementById("livesearch").style.border="0px";
return;
}
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("livesearch").innerHTML=xmlhttp.responseText;
document.getElementById("livesearch").style.border="1px solid #A5ACB2";
}
}
xmlhttp.open("GET","livesearch.asp?q="+str,true);
xmlhttp.send();
}
</script>
</head>
<body>

<form>

<input type="text" size="30" onkeyup="showResult(this.value)">
<div id="livesearch"></div>
</form>

</body>
</html>

You would be best using jquery.autocomplete with jquery.
Either way I reckon that for a name field you should only hit the database once and get your javascript to filter the query rather than repeated database calls which are very expensive.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.