Søgefunktion onchange, der henter data fra Excel-fil
Nedenstående kode repræsenterer en hel asp-fil med søgning. Søgefunktionen består af en dropdown-menu med valgmulighederne "fornavn" og "efternavn", samt et søgefelt, hvor selve navnet kan indtastes. Desuden er der en knap til at udføre søgningen. Dataene hentes fra et Excel-ark i kolonnerne "fornavn" og "efternavn". Hvis der er flere med samme fornavn eller efternavn, vil alle personerne blive listet. Der er ingen fejl i asp-filen.Det jeg nu har brug for er, at der skal laves endnu en dropdown-menu i samme søgebillede. Her skal den hente data fra Excel-arket i kolonnen "afdeling". Valgmulighederne i dropdown-menuen skal være f.eks. "salg", "lager", "indkøb" osv. Denne menu skal automatisk aktivere søgning, når en af ovenstående valgmuligheder er valgt, dvs. at der ikke skal være en søgeknap. Jeg har selv tænkt på onchange-funktionen, men kan ikke lige få løst problemet.
Resultatet af søgningen skal listes op på samme måde, som den visning, der kommer af den nuværende søgefunktion, dvs. hvis der er flere fra samme afdeling, vises alle personerne fra pågældende afdeling.
Jeg er naturligvis åben for andre løsningsmodeller end onchange-modellen, men der skal ikke være nogen søgeknapper til funktionen.
Asp-filen ser ud som følgende:
<%@ Language=VBScript %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Personalefortegnelse</title>
<script language="JavaScript">
<!--
function MM_reloadPage(init) { //reloads the window if Nav4 resized
if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);
// -->
</script>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></head>
<body background="../../Images/Baggrund.jpg" link=#105594 alink=#105594 vlink=#105594>
<p>
<table border="0" width="550">
<tr>
<td width="26"> </td>
<form action="search.asp" id=FORM1 method=post name=FORM1>
<td width="117" valign="top"><font face="Arial, Helvetica, sans-serif" size="3" color="#00659C">Search
by</font><font face="Arial, Helvetica, sans-serif" size="3">:</font><br>
<select size="1" name="srchsel">
<option value="lname" selected>Efternavn</option>
<option value="fname">Fornavn</option>
</select>
</td>
<td width="30">
</td>
<td width="250" valign="top">
<p><font size="3" face="Arial, Helvetica, sans-serif" color="#00659C">Enter
search text:</font><br>
<input id=srch name=srch value="<%=request("srch")%>"><br>
<input type=submit value="Search"></p>
</form></td>
<td width="30">
</td>
</tr>
</table>
<br><br>
<table border="0" width="382">
<%
srch=request("srch")
srchsel=request("srchsel")
if srch <> "" then
Select Case srchsel
Case "lname"
fndtext= "[Efternavn] LIKE '"
Case "fname"
fndtext= "[Fornavn] LIKE '"
End Select
adOpenStatic=3
adLockReadOnly=1
adCmdText=1
adSearchForward = 1
count = 0
Set rs= server.CreateObject("Adodb.Recordset")
Set conn = server.CreateObject("ADODB.Connection")
connstr= "Provider=MSDASQL.1;Persist Security Info=False;Extended Properties=""DBQ=" & server.MapPath("Personalefortegnelse.xls") & ";Driver={Microsoft Excel Driver (*.xls)};DriverId=790;FIL=excel 8.0;MaxBufferSize=2048;MaxScanRows=8;PageTimeout=5;ReadOnly=1;SafeTransactions=0;Threads=3;UID=admin;UserCommitSync=Yes;"";User Id=admin;"
conn.Open connstr
rs.Open "SELECT * FROM Excelfortegnelse", conn, _
adOpenStatic, adLockReadOnly, adCmdText
rs.Find fndtext & srch & "%'"
Do While rs.EOF <> True 'Continue if last find succeeded.
Response.Write "<TR><TD width='26'> </TD><TD valign='top'>"
Response.Write "<font face='Arial, Helvetica, sans-serif'>"
Response.Write "<a href=" & chr(34) & "centre.asp?id=" & rs("Nummer") & chr(34) & ">" & rs("Fornavn") & " " & rs("Efternavn") & "</a><br>"
Response.Write "</font></TD></TR>"
count = count + 1
mark = rs.Bookmark
rs.Find fndtext & srch & "%'", 1, adSearchForward, mark
Loop
rs.Close
conn.Close
if count = 0 then
Response.Write "<TR><TD width='26'> </TD><TD valign='top'>"
Response.Write "<font face='Arial, Helvetica, sans-serif' color='#00659C'>Beklager, men din forespørgsel gav intet resultat.</font>"
Response.Write "</TD></TR>"
end if
Response.Write "</TABLE>"
Set rs = Nothing
Set conn = Nothing
end if
%>
</table>
</body>