Avatar billede ml Nybegynder
10. august 2002 - 02:14 Der er 3 kommentarer og
1 løsning

Markering af søgeord i resultat

Hvordan laver man en funktion der markere det eller de søgeord som er blevet fundet i resultatet, generet ud fra en database.

Og nej, jeg kan ikke bare bruge replace, da den kun virker med et (1) ord/en sætning.

Hvis man f.eks. søger på "Rød kop", kan resultatet f.eks. se sådan ud: "Der lå en [kop] i skuffen, den var [rød]." Den skal altså kunne dele ordene og markere dem hver for sig, samt være "ligeglad" med store og små bogstaver (funktionen må selvfølgelig ikke bare lave hele teksten om til småt).

Håber der er nogle som lige har hvad jeg mangler :o)
Avatar billede psyclown Nybegynder
10. august 2002 - 02:47 #1
kan det her bruges til noget, jeg har ikke prøvet funktionen, så jeg ved ikke den gør hvad du ønsker:

kig her: http://www.eksperten.dk/spm/128411
Avatar billede limemedia Nybegynder
10. august 2002 - 08:06 #2
Vi har lige været "gennem møllen" i JavaScript i http://www.eksperten.dk/spm/241176 - du kan vælge at tilføje det script eller lave det tilsvarende i asp (kan ikke selv asp)

/ LJ
www.ljweb.com
Avatar billede coltau Juniormester
10. august 2002 - 08:27 #3
Måske kan du bruge denne:

<%
Function markString(strInput,findStr)
Dim p, lc
  lc = LCase(strInput)
  findStr = LCase(findStr)
  p = inStr(lc, findStr)
  if (P > 0) then
    markString = ""
    do while (p > 0)
      markString = markString & Left(strInput, p - 1) & "<b>" & Mid(strInput, p, len(findStr)) & "</b>"
      strInput = Mid(strInput, p + len(findStr))
      lc = LCase(strInput)
      p = inStr(lc, findStr)
    loop
    markString = markString & strInput
  else
    markString = strInput
  end if
End Function

Function markAll(strInput, findStr)
Dim s
  markAll = strInput
  s = Split(findStr)
  for Each Word in s
    markAll = markString(markAll, Word)
  next
End Function

Response.Write(markAll("Dette er en tekst nogle af ordene er fremhævet. Ordene fremhæves hvis de findes i teksten.", "tekst ord"))
Response.Write("<br>")
Response.Write(markAll("Der lå en [kop] i skuffen, den var [rød].", "Rød kop"))
%>
Avatar billede ml Nybegynder
12. august 2002 - 15:38 #4
Tak, det virker :)
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