Avatar billede para7 Nybegynder
13. juli 2004 - 09:50 Der er 9 kommentarer og
1 løsning

Highlighte søgeresultater som ved google-søgning

Når jeg søger på google.dk er det en fed feature at det jeg har søgt på highlightes efterfølgende i browseren (IE).
Men hvordan i alverden kan det lade sig gøre ?

Jeg ønsker selv at lægge nogle historier ind i en access db og søge resultaterne skulle gerne highlightes med søgeordet.
Avatar billede powernodes Nybegynder
13. juli 2004 - 09:58 #1
Ikke perfekt, men brugbart:

<%
SearchField = Trim(Request("SearchField"))
arrSearchField = Split(SearchField, " ")

str = rs("field")

Set regEx = New RegExp
regEx.Global = true
regEx.IgnoreCase = True

For i = LBound(arrSearchField) To UBound(arrSearchField)

  strKeyword = arrSearchField(i)

  regEx.pattern = "(" & strKeyword & ")"
  str = regEx.Replace(str , "<strong>$1</strong>")

Next
%>

og

<%
If Not rs.EOF Or Not rs.BOF Then
  Response.Write(str)
End If
%>
Avatar billede para7 Nybegynder
13. juli 2004 - 10:11 #2
tak powernodes, det må jeg prøve når jeg lige har fået noget op at køre. Det ligner lidt noget Higher Learning, som jeg ikke forstår:
Set regEx = New RegExp
regEx.Global = true
regEx.IgnoreCase = True
Men hovedsagen er at det virker. "Ikke perfekt, men brugbart": mener du at det ikke er en sikker løsning, eller at det bare skal integreres og pudses af?
Avatar billede powernodes Nybegynder
13. juli 2004 - 10:39 #3
Jeg kan ikke huske præcist hvad jeg havde af issues - mener det var noget vedr. HTMLEncode. Men jo det virker da :)
Avatar billede para7 Nybegynder
14. juli 2004 - 10:11 #4
(Øv, sommetider forsvinder det jeg prøver at sende ud i den blå luft her på exp)
Avatar billede para7 Nybegynder
14. juli 2004 - 10:16 #5
Tak igen powernodes, det virker fint. Send lige et svar for point.

Til sidst kunne jeg dog godt tænke mig at på resultatsiden scrolles der ned til det første hilitede søgeord. Jeg har forsøgt at indsætte option til bookmark som "#hilite":
http://localhost/noniportalen/Visartikler.asp#hilite?id=2&SearchField=noni

Og jeg har forsynet koderne med bookmarking:
<%
regEx.pattern = "(" & strKeyword & ")"
  str = regEx.Replace(str , "<a name='hilite'></a><font class='hiliteSoegeord'>$1</font>")
%>

Men der kommer følgende fejl:
"
Microsoft JET Database Engine (0x80040E14)
Der er en syntaksfejl, fordi der mangler en operator. i forespørgselsudtrykket "ID =".
/noniportalen/Visartikler.asp, line 6
"
Avatar billede Slettet bruger
14. juli 2004 - 13:19 #6
Tjek om der er noget indhold i "ID"...

Fejlen plejer tit at komme hvis feltet er tomt.
F.eks:
strSQL = "Select * From tabel Where ID = " & Request.Form("ID")

Hvis Request.Form("ID") = "" så mener jeg fejlen plejer at komme...
Avatar billede para7 Nybegynder
14. juli 2004 - 15:01 #7
Tak for tippet mikeyp
Rigtignok, der var ikke noget ID. Nu har jeg overført som formelementer med action der har bookmarkkaldet og det virker fint.
Avatar billede para7 Nybegynder
15. juli 2004 - 21:00 #8
Hej powernodes, hvor blir' du af? Du skal da ha' dine point.
Avatar billede powernodes Nybegynder
16. juli 2004 - 09:46 #9
Ahh ja :)

tak.
Avatar billede para7 Nybegynder
16. juli 2004 - 11:04 #10
Og tak herfra. Det virker perfekt :)
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester