09. november 2000 - 13:10Der er
12 kommentarer og 1 løsning
Hyperlink og nummering i søgeresultat
Jeg har udarbejdet en ASP-kode der kan udtrække data fra en AccessDB. Det er muligt at søge på flere felter. Jeg har dog nu brug for en løsning til, hvordan jeg får mine søgeresultater vist, hvor hver enkel resultat bliver tildelt et nummer. F.eks. således: 1. hansen, marie 2. jensen, peter o.s.v.
Samtidig skal de felter, jeg har valgt ud af det fulde post udgøre et hyperlink. Hyperlinket skal åbne et nyt vindue, hvor den fulde db-post så kan blive vist.
Løb igennem dit recordset og hav en counter variabel. Du skal desuden have et ID felt for hver post hvis du vil være sikker på at kunne trække data ud til siden med den fulde post, korrekt. Hvis ikke du har det, så lav et felt: ID og type Autonummering.
med koden nedenfor antager jeg at du har et ID felt.
count=1 \' init. counter do until rs.eof or rs.bof
<% Dim StrKeyword Dim StrKeyword1 Dim StrKeyword2 Dim StrKeyword3 Dim StrKeyword4 Dim StrKeyword5 Dim StrKeyword6 Dim StrKeyword7 Dim StrKeyword8 Dim StrKeyword9 Dim Strtom Dim strnummer
intPage = Request(\"page\") If isNumeric(intPage) = False Or intPage < 1 Then intPage = 1 End If Set rs = Server.CreateObject(\"ADODB.RecordSet\") strSQL = \"SELECT * FROM Tabel WHERE\" strSQL = strSQL & \" ((Efternavn LIKE \'%\" & strKeyword & \"%\')\" strSQL = strSQL & \" OR (Fornavne LIKE \'%\" & strKeyword & \"%\')\" strSQL = strSQL & \" OR (Fodselsdato LIKE \'%\" & strKeyword & \"%\')\" strSQL = strSQL & \" OR (Fodested LIKE \'%\" & strKeyword & \"%\')\" strSQL = strSQL & \" OR (Gadevej LIKE \'%\" & strKeyword & \"%\')\" strSQL = strSQL & \" OR (Gadevejnummer LIKE \'%\" & strKeyword & \"%\')\" strSQL = strSQL & \" OR (Stilling LIKE \'%\" & strKeyword & \"%\')\" strSQL = strSQL & \" OR (Statusihusstand LIKE \'%\" & strKeyword & \"%\')\" strSQL = strSQL & \" OR (Tidligerebosaettelse LIKE \'%\" & strKeyword & \"%\'))\" If Len(strKeyword1) > 0 Then strSQL = strSQL & \" AND (Efternavn LIKE \'%\" & strKeyword1 & \"%\')\" End if
If Len(strKeyword2) > 0 Then strSQL = strSQL & \" AND (Fornavne LIKE \'%\" & strKeyword2 & \"%\')\" End if
If Len(strKeyword3) > 0 Then strSQL = strSQL & \" AND (Fodselsdato LIKE \'%\" & strKeyword3 & \"%\')\" End if
If Len(strKeyword4) > 0 Then strSQL = strSQL & \" AND (Fodested LIKE \'%\" & strKeyword4 & \"%\')\" End if
If Len(strKeyword5) > 0 Then strSQL = strSQL & \" AND (Gadevej LIKE \'%\" & strKeyword5 & \"%\')\" End if
If Len(strKeyword6) > 0 Then strSQL = strSQL & \" AND (Gadevejnummer LIKE \'%\" & strKeyword6 & \"%\')\" End if
If Len(strKeyword7) > 0 Then strSQL = strSQL & \" AND (Stilling LIKE \'%\" & strKeyword7 & \"%\')\" End if
If Len(strKeyword8) > 0 Then strSQL = strSQL & \" AND (Statusihusstand LIKE \'%\" & strKeyword8 & \"%\')\" End if
If Len(strKeyword9) > 0 Then strSQL = strSQL & \" AND (Tidligerebosaettelse LIKE \'%\" & strKeyword9 & \"%\')\" End if
If Len(strnummer) = 0 Then strSQL = strSQL & \"ORDER BY Gadevejnummer\" Else strSQL = strSQL & \"ORDER BY Efternavn, Fornavne, Gadevej, Gadevejnummer, Fodested, Fodselsdato, Stilling, Statusihusstand, Tidligerebosaettelse\" end if
strDSN = \"DRIVER={Microsoft Access Driver (*.mdb)};DBQ=\"&Server.MapPath(\"Borgerdatabase.mdb\") rs.Open strSQL, strDSN, 1 If Not (rs.BOF Or rs.EOF) Then rs.PageSize = 20 rs.AbsolutePage = intPage intRecCount = rs.PageSize intPageCount = rs.PageCount
intRecCount = intRecCount - 1 rs.MoveNext count=count+1 Loop Else Response.Write \"Der er ikke fundet nogle borgere, der matcher din søgning\" End If rs.Close Set rs = Nothing Response.Write \"<p>Gå til side \" For intNum = 1 To intPageCount
Det virker næsten nu. Der er dog en besynderlig fejl. Når man klikker på post 1, som f.eks. ser således ud: 1. hansen, marie Markeres navnet hansen, marie, som det skal, men samtidig også den underliggende posts nummer (kun nummeret). I dette tilfælde 2. Hvorfor det?
Hvad skriver jeg forøvrigt i det ASP-script (hvor hyperlinket leder til), som så skal vise hele posten. Dette script skal jo vide, hvilket post Id, som det skal vise alle felter af.
tdaugaard, det virker. kanon - du har fortjent dine point
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.