webForumDet fria alternativet

Markera <b>sökt</b> text

ASP

15 svar · 381 visningar · startad av Jesper T

Medlem sedan nov. 20017 144 inlägg
Frågan#1

Har sökt och kollat och letat med ljus och lykta efter ett grej som markerar upp den sökta texten med <B>.
RegExp, replace osv men hittar inget exempel som skulle kunna passa i en sökfunktion! Har någon någon aning (nån, någon...)
Det finns säkert 1000 sätt, men jag hittar inget!

//Mvh Jesper

Medlem sedan dec. 200012 464 inlägg
#2
str = replace(str,search,"<b>" & search & "</b>",1,-1,vbTextCompare)

------------------
essentitia preter non sans multiplicandum

[Redigerat av LarsG den 14 jan 2002]

Medlem sedan nov. 20017 144 inlägg
#3

Kul!
Jag har bytt ut search mot Query, är det fel eller rätt?
Och var skall jag stoppa den?


str = replace(str,Query ,"<b>" & Query & "</b>",1,-1,vbTextCompare)

Det händer inget!!

MVH Jesper

[Redigerat av Jesper T den 14 jan 2002]

Medlem sedan dec. 200012 464 inlägg
#4

Om du skriver ut resultatet då

response.write str

Om query är rätt eller fel kan jag inte säga något om utan att se mer av din kod.

------------------
essentitia preter non sans multiplicandum

Medlem sedan nov. 20017 144 inlägg
#5

Ser ut så här:


     <%
		Set Conn = Server.CreateObject("ADODB.Connection")
		Set Rs = Server.CreateObject("ADODB.Recordset")
        Conn.Open "DBQ=" & Server.Mappath("search.mdb") & ";Driver={Microsoft Access Driver (*.mdb)};"
    
		SQL = "SELECT * FROM Items WHERE Name like '%" & Query & "%' or Description like '%" & Query & "%'"
		rs.Open SQL, Conn
		str = replace(str,Query ,"<b>" & Query & "</b>",1,-1,vbTextCompare)

		

		x = 0
		For x = 1 to 9999
		If rs.eof then
        If x = 1 Then
        Response.Write "Sökningen gav inget resultat!<BR>"
		
       End If
		Exit For
		 
		Else

		ImageURL = rs("ImageURL")
		ImageURL = "<img src='../../db/items/" & ImageURL & "'>"
		str = replace(str,Query ,"<b>" & Query & "</b>",1,-1,vbTextCompare)
	   %>
      </font> 
      <table width="520" border="0" cellspacing="0" cellpadding="0">
        <tr> 
          <td width="152" align="right" valign="middle" height="19"> 
            <div align="left"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Varu 
              namn&nbsp;</font></div>
          </td>
          <td width="448" height="19"><font face="Verdana, Arial, Helvetica, sans-serif" size="2"> 
            <% response.write rs("Name")
			response.write str %>

            </font></td>
        </tr>
        <tr> 
          <td width="152" align="right" valign="middle"> 
            <div align="left"><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Beskrivning</font></div>
          </td>
          <td width="448"><font face="Verdana, Arial, Helvetica, sans-serif" size="2"> 
            <%response.write str 
			response.write rs("Description")%>
            </font></td>

Ungefär i den stilen.

Noll och nix, händer inget, men jag är väl förstås ute och cyklar!

Medlem sedan dec. 200012 464 inlägg
#6
<%
Set Conn = Server.CreateObject("ADODB.Connection")
Set Rs = Server.CreateObject("ADODB.Recordset")
Conn.Open "DBQ=" & Server.Mappath("search.mdb") & ";Driver={Microsoft Access Driver (*.mdb)};"

SQL = "SELECT * FROM Items WHERE Name like '%" & Query & "%' or Description like '%" & Query & "%'"
rs.Open SQL, Conn

x = 0
For x = 1 to 9999
If rs.eof then
If x = 1 Then
Response.Write "Sökningen gav inget resultat!<BR>"

End If
Exit For

Else

ImageURL = rs("ImageURL")
ImageURL = "<img src='../../db/items/" & ImageURL & "'>"

%>
</font> 
<table width="520" border="0" cellspacing="0" cellpadding="0">
<tr> 
<td width="152" align="right" valign="middle" height="19"> 
<div align="left"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Varu 
namn </font></div>
</td>
<td width="448" height="19"><font face="Verdana, Arial, Helvetica, sans-serif" size="2"> 
<% 
response.write replace(rs("Name"),Query ,"<b>" & Query & "</b>",1,-1,vbTextCompare)
%>
</font></td>
</tr>
<tr> 
<td width="152" align="right" valign="middle"> 
<div align="left"><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Beskrivning</font></div>
</td>
<td width="448"><font face="Verdana, Arial, Helvetica, sans-serif" size="2"> 
<%
response.write replace(rs("Description"),Query, "<b>" & Query & "</b>",1,-1,vbTextCompare)
%>
</font></td>

------------------
essentitia preter non sans multiplicandum

Medlem sedan nov. 20017 144 inlägg
#7

Ja då, ja då, jaaaaaaaaaaaa

Medlem sedan nov. 20017 144 inlägg
#8

Det ser ju riktigt <b>snyggt</b> ut också!!

Tack!!//Jesper

Medlem sedan nov. 20011 551 inlägg
#9

hej
kort tilläggsfråga: om jag i min sökmotor söker på 900 får jag t ex träff på SS-EN 9001, kan jag med relativt enkla medel då skriva ut det såhär SS-EN <b>900</b>1 blablabla
*undrande*

------------------
Rammstein rules - Du riechst so gut

Medlem sedan dec. 200012 464 inlägg
#10

Det är så det blir.

------------------
essentitia preter non sans multiplicandum

Medlem sedan nov. 20011 551 inlägg
#11

hehe, den som testar skall se fungerande saker sa nån =)

tack tack

------------------
Rammstein rules - Du riechst so gut

Medlem sedan jan. 2001188 inlägg
#12

str = replace(str,Query ,"<b>" & Query & "</b>",1,-1,vbTextCompare)

Vad står 1 , -1 och vbTextCompare för? Det fungerar ju lika bra utan...

Medlem sedan dec. 200012 464 inlägg
#13

1 är startposition
-1 betyder att man skall byta alla förekomster
vbTextCompare innebär att man inte är skiftlägeskänslig

Om du har sökt efter "apa" och hittar "Apa" i databasen så fungerar det med att göra bold även i detta fall. Om du utelämnar vbTextCompare så kommer replace inte att hitta "Apa"

Medlem sedan jan. 2001188 inlägg
#14

Ah, goodie. Men när replace nu hittar även Apa, så byter den fortfarande ut det mot <b>apa</b> (alltså tar den bort att Apa har stort a när det skrivs ut). Finns det något lätt sätt att få Apa att ha kvar sitt stora a? :)

Medlem sedan dec. 200012 464 inlägg
#15

Nja, inte så där rakt av men det går (naturligtvis). Du måste använda regular expressions och utnyttja samlingen matches.

Medlem sedan maj 200010 687 inlägg
#16

TextCompare är inte så bra i den koden.
Söker man på asp och ASP hittas så kommer <b>asp</b> skrivas i koden. :l

Så här har jag skrivit på ett ställe. Inte så väldans bra heller, men lite bättre enligt mig.

str = replace(str,Query ,"<b>" & UCase(Query) & "</b>",1,-1,vbTextCompare)

Det hittade ordet blir alltid skrivet med versaler då...

Ah! Missade det två sista inläggen. :r

271 ms totalt · 4 externa anrop · v20260731065814-full.e96017d9
133 ms — deklarationer (db)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)
133 ms — ändringar (db)