Avatar billede kumpel2000 Nybegynder
22. september 2006 - 11:05 Der er 16 kommentarer og
1 løsning

Highlight ord

Jeg har to tabeller. I den ene tabel ligger der nogle ord samt nogle beskrivelser til disse. I den anden tabel har jeg så nogle tekster liggende.

Jeg kunne tænke mig at når tabel 2 vises med teksterne i, så skal der først søges den første tabel igennem for at se om nogle af orderne findes i tabel. Hvis de gør skal de highlightes.

Kan nogen lave dette til mig ?
Avatar billede Slettet bruger
22. september 2006 - 12:03 #1
ja da!

- er det en Access-database du har?
fortæl mig lige hvad databasen og tabellerne hedder. Og hvad de kollonner der skal bruges hedder...

- så laver jeg dette til dig i dag engang...

\Dan
Avatar billede kumpel2000 Nybegynder
22. september 2006 - 12:15 #2
Databasen hedder oplev og tabellerne hedder ordbog og dagbog. Ordbog indeholder alle orderne og dagbog alle teksterne som skal gennemsøges.

Ordbog kolloner : ord og beskriv
Dagbog kolloner : dag

Bemærk at når orderne bliver highlightet skal de også laves som link så når man klikker på den skal de slå op i ordbog tabellen og vise beskrivelsen.

Det er en SQL server.
Avatar billede nielle Nybegynder
23. september 2006 - 22:05 #3
Du kan bruge denne funktion til at highlighte ordene med:

Function Highlight(tekst)
    Set highlighter = New RegExp
    highlighter.IgnoreCase = False
    highlighter.Global = True

    sql = "SELECT ord FROM ordbog"
    Set rs = Conn.Execute(sql)

    Do While Not rs.EOF
        highlighter.Pattern = "\b" & rs("ord") & "\b"
        tekst = highlighter.Replace(tekst, "<b>$1</b>")

        rs.MoveNext
    Loop

    Set rs = Nothing

    Highlight = tekst
End Function
Avatar billede nielle Nybegynder
23. september 2006 - 22:06 #4
Skal jo nok være:

highlighter.IgnoreCase = True
Avatar billede kumpel2000 Nybegynder
24. september 2006 - 16:49 #5
Det ser jo godt, med lidt modifikationer fik jeg det til at virke. Men når jeg kører musen hen over den fremhævede tekst vil jeg gerne have det så den popup med et lille vindue som skriver beskrivelsen, hvordan gør jeg det ?
Avatar billede nielle Nybegynder
24. september 2006 - 20:58 #6
F.eks. sådan:

Function Highlight(tekst)
    Set highlighter = New RegExp
    highlighter.IgnoreCase = False
    highlighter.Global = True

    sql = "SELECT ord, beskriv FROM ordbog"
    Set rs = Conn.Execute(sql)

    Do While Not rs.EOF
        highlighter.Pattern = "\b" & rs("ord") & "\b"
        tekst = highlighter.Replace(tekst, "<b title='" & rs("beskriv") & "'>$1</b>")

        rs.MoveNext
    Loop

    Set rs = Nothing

    Highlight = tekst
End Function
Avatar billede kumpel2000 Nybegynder
24. september 2006 - 21:05 #7
Nope det virker ikke. Der kommer ikke noget frem
Avatar billede kumpel2000 Nybegynder
24. september 2006 - 21:15 #8
Og dog det virker alligevel, men beskrivelsen står der kun et kort øjeblik og så er den væk igen. Den skulle gerne blive stående til man flytter musen væk.
Avatar billede nielle Nybegynder
24. september 2006 - 21:22 #9
Det gør den den nu også i min browser - MSIE 6.0. Jeg er ikke lige klar over hvad der skulle være anderledes i din... :^|
Avatar billede nielle Nybegynder
27. september 2006 - 20:09 #10
Har du et link man kan se det på?
Avatar billede kumpel2000 Nybegynder
27. september 2006 - 21:27 #11
Nej det er desværre en lukket side. Men jeg har nu integreret den med overlib som popup, men det er som der noget der går galt når udlæser noget af teksten i overlib popup vinduet, somom noget går i ring. Jeg har vedhæftet koden kan nogen se noget galt i kode ?

<%
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open dbPath
If Request.QueryString("id") <> "" Then
strSQL = "SELECT * FROM dagbog WHERE id=" & Request("id")
Conn.Execute (strSQL)
RS.Open strSQL, Conn, 3, 3



Function Highlight(tekst)
    Set highlighter = New RegExp
    highlighter.IgnoreCase = True
    highlighter.Global = True

    sql = "SELECT ord, beskriv, billede FROM ordbog"
    Set rs1 = Conn.Execute(sql)


    Do While Not rs1.EOF

Dim strbeskriv
strbeskriv=rs1("beskriv")
if strbeskriv <> "" then
strbeskriv=Replace(strbeskriv,vbCrLf,"<br/>")
else
strbeskriv = ""
end if

        highlighter.Pattern = "\b" & rs1("ord") & "\b"
        tekst = highlighter.Replace(tekst, "<a href=""java script:void(0);"" class=sort onmouseover=""return overlib('"&strbeskriv&"<br><center><img src="&rs1("billede")&"></center>',CAPTION,'"&rs1("ord")&"', AUTOSTATUSCAP)""; onmouseout=""return nd()"";><b>" &rs1("ord")&"</b></a>")
        rs1.MoveNext
    Loop

    Set rs1 = Nothing

    Highlight = strbeskrivelse
    End Function

Dim strbeskrivelse
strbeskrivelse=rs("beskrivelse")
if strbeskrivelse <> "" then
strbeskrivelse=Replace(strbeskrivelse,vbCrLf,"<br />")
else
strbeskrivelse = ""
end if
%>
Avatar billede nielle Nybegynder
27. september 2006 - 21:31 #12
Jeg er desværre ikke specielt familliær med overlib.

Prøv at tage en Vis Kilde af den genererede kode og se om den ser rigtig ud i forhold til hvordan den skal være for overlip.
Avatar billede kumpel2000 Nybegynder
27. september 2006 - 21:33 #13
done that
Avatar billede nielle Nybegynder
27. september 2006 - 23:31 #14
Ja?
Avatar billede kumpel2000 Nybegynder
01. oktober 2006 - 22:44 #15
Smider du et svar, så skal du få point. Jeg har fået det til at virke med overlib.
Avatar billede nielle Nybegynder
03. oktober 2006 - 08:57 #16
Svar :^)
Avatar billede nielle Nybegynder
03. oktober 2006 - 17:58 #17
Takker for point :^)
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