Avatar billede thb Nybegynder
09. december 2001 - 02:36 Der er 10 kommentarer og
1 løsning

Søgning

Hej alle

Jeg har lavet søge funktion til min artikel side.. men når søge resultaterne kommer så vil jeg gerne have at søgeordet bliver <b>bold</b>.

Her er min kode:

<%
sogeord = request.form(\"sogeord\")
SQL = \"Select * FROM artikler WHERE tekst LIKE \'%\" & sogeord & \"%\' OR navn LIKE \'%\" & sogeord & \"%\' ORDER BY dato desc\"

Set sog = conn.Execute(SQL)

response.write Replace(sog(\"navn\"), sogeord, \"<b>\" & sogeord & \"</b>\") & \"<br>\"
%>

Men hvis søgeordet i dben er skrevet med stort og søgeordet bliver indtastet med småt, så kan replace() ikke finde ud af det.
Det virker hvis jeg laver lcase(sog(\"navn\")), men så bliver alt udskrevet i småt, og det er heller ikke fedt...

Det jeg har brug for hjælp til er at få det til at replace selvom at der er forskel på stort og småt.

Håber at i kan hjælpe mig.

Thomas   
Avatar billede tmceu Praktikant
09. december 2001 - 02:59 #1
Jeg har ikke testet nedenstående, men det bør virke.

strSog = sog(\"navn\")
tmpLen = len(strSog)
tmpPos = 1
ordLen = len(sogeord)

do until tmpPos = 0
tmpPos = inStr(tmpPos, strSog, sogeord)

if tmpPos <> 0 then
  strTmpOrd = left(strSog, tmpPos) & \"<B>\" & sogeord & \"</B>\" & right(strSog, (tmpLen-(tmpPos+ordLen)))
end if
loop

response.write strSog
Avatar billede tmceu Praktikant
09. december 2001 - 03:03 #2
Der var lige en lille fejl

strSog = sog(\"navn\")
tmpLen = len(strSog)
tmpPos = 1
ordLen = len(sogeord)

do until tmpPos = 0
tmpPos = inStr(tmpPos, strSog, sogeord, 1)

if tmpPos <> 0 then
  strTmpOrd = left(strSog, tmpPos) & \"<B>\" & sogeord & \"</B>\" & right(strSog, (tmpLen-(tmpPos+ordLen)))
end if
loop

response.write strSog

Jeg glemte at sætte den til textual compare. Dette vil forresten også løse problemet i din replace, som kan ændres til

response.write Replace(sog(\"navn\"), sogeord, \"<b>\" & sogeord & \"</b>\", 1, -1, 1) & \"<br>\"
Avatar billede snuseren.dk Nybegynder
09. december 2001 - 18:46 #3
Jeg har da aldrig problemer med at gøre sådan:

<font>Du søgte på:</font><%response.write(<b>request(\"formularen\")</b>)
Avatar billede thb Nybegynder
09. december 2001 - 20:50 #4
Begge ting virker sådan va. rigtigt bortset fra en lille fejl...

Den udskriver stadigvæk søge ordet med småt... det vil sige at hvis man søge på \'første\' og det står i dben \'Første\' så skal det udskrives Første og ikke første og det bliver det...

Håber at du kan rette den sidste lille mangel... :=)

Thomas
Avatar billede tmceu Praktikant
10. december 2001 - 10:05 #5
I så fald kan du ikke bruge replace, men nedenstående rettede version af scriptet skulle gerne gøre det...

Der var lige en lille fejl

strSog = sog(\"navn\")
tmpLen = len(strSog)
tmpPos = 1
ordLen = len(sogeord)

do until tmpPos = 0
tmpPos = inStr(tmpPos, strSog, sogeord, 1)

if tmpPos <> 0 then
  strSog = left(strSog, tmpPos) & \"<B>\" & mid(strSog, tmpPos, ordLen) & \"</B>\" & right(strSog, (tmpLen-(tmpPos+ordLen)))
end if
loop

response.write strSog
Avatar billede thb Nybegynder
10. december 2001 - 15:12 #6
Den siger fejl ved funktionen right()

>> Microsoft VBScript runtime fejl \'800a0005\'
>> Invalid procedure call or argument: \'right\'

Og der er også opstået et nyt problem :) (skal nok hæve pointne) der er HTML koder i artiklerne og dem skulle den helts ikke røre ved... for hvis der står <img src=\"img/totaltriumf.gif\"> og man søger på total så tror jeg ikke at den vil vise dette billed <img src=\"img/<b>total</b>triumf.gif\">....

Thomas

Avatar billede tmceu Praktikant
10. december 2001 - 15:39 #7
Er du sikker på at hele denne kode står på samme linie ?

strSog = left(strSog, tmpPos) & \"<B>\" & mid(strSog, tmpPos, ordLen) & \"</B>\" & right(strSog, (tmpLen-(tmpPos+ordLen)))

Tænker lige lidt over html koderne...
Avatar billede thb Nybegynder
10. december 2001 - 21:46 #8
Jep det er jeg sikker på...
Avatar billede thb Nybegynder
11. december 2001 - 23:50 #9
jeg er gået væk fra det med at lave søgeorderne bold det giver for mange problemer, men tak for hjælpen...

Hvis du finder et godt svar på et tidspunkt, kan du godt få nogle flere point... bare skriv til mig fra kontakt formen på www.kbgamestate.dk

Thomas
Avatar billede tmceu Praktikant
11. december 2001 - 23:54 #10
Det var så lidt. Jeg har ikke haft tid til at kigge på det med HTML tags endnu, men jeg ved der findes komponenter til at gøre det med. Jeg smider info både her og på ovenstående adresse hvis jeg falder over noget.
Avatar billede thb Nybegynder
12. december 2001 - 00:03 #11
mange tak... hvis du vil se udfaldet af det hele... så tag et kig på www.team-chefen.dk og tryk på øverste nyhed...
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