Autocompletar en ASP clásico con AJAX y Javascript

Código ASP clásico

A continuación se muestra un código en ASP clásico para autocompletar (suggest) registros de una base de datos en Access o en SQL Server. Para ello utilizaremos Ajax- y Javascript:

<%  response.expires=-1  Dim rsWords, rsWords_numRows, q, b, hint  q=ucase(request.querystring("q"))  b=(request.querystring("b"))  f=(request.querystring("f"))  a=(request.querystring("a"))  hint=""  Set rsWords = Server.CreateObject("ADODB.Recordset")  rsWords.ActiveConnection = <connection string>  rsWords.Source = "SELECT medName FROM dbo.prescMeds WHERE (medName LIKE'" + q + "%') ORDER BY medName"  rsWords.CursorType = 2  rsWords.CursorLocation = 2  rsWords.LockType = 3  rsWords.Open()  rsWords_numRows = 5     If Not rsWords.EOF Then  		Do While Not rsWords.EOF  				If trim(hint) = "" Then  						hint = "<a href=""javascript:setTextBox('" & rsWords("medName") & "','" & b & "','" & f & "','" & a & "');"">" & rsWords("medName") & "</a>"  				Else  						hint = hint & " <br /><br /> <a href=""javascript:setTextBox('" & rsWords("medName") & "','" & b & "','" & f & "','" & a & "');"">" & rsWords("medName") & "</a>"  				End If  				rsWords.MoveNext()  		Loop  End If  if trim(hint)="" then     	response.write("no suggestion")  else    	response.write(hint)  end if     rsWords.Close()  Set rsWords = Nothing  %>    

El código Javascript/AJAX para procesar las sugerencias es el siguiente:

    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 AJAX!");	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;  }     //this function allows for Clickable suggestions  function setTextBox(thisText,thisBox,thisForm,autoSubmit){  	document.getElementById(thisBox).value = thisText  	//this autoSubmits the form after a suggestion is clicked - it is not working :(  	//if(autoSubmit=='true'){  	//	alert(thisForm);  	//	document.getElementById(thisForm).submit();  	//}  }     

El código html que usará el script de ASP clásico y el de Javascript / Ajax es el siguiente:

       <form action="prescriptions4.asp" method="post">        <input type="text" id="txt1" onkeyup="showHint(this.value,'txt1','form1',true)" />	  </form>  		<div id="txtHint"></div>         

tags: Autocompletar ASP clásico, AJAX, Javascript, programación web, desarrollo web, sugerencias de búsqueda, autocompletado de formularios

En esta sección encontrarás una mezcla de códigos recopilados de fuentes públicas de Internet y otros creados por CoreASP. Estos recursos se comparten de buena fe con el único objetivo de servir como base de conocimiento en el desarrollo de aplicaciones en ASP Clásico. CoreASP no garantiza la precisión, vigencia ni funcionamiento de los artículos o fragmentos de código publicados, y no se hace responsable por el uso que se les dé. Se recomienda siempre revisar, adaptar y probar el código antes de implementarlo en entornos de producción.