Jesper T Medlem sedan nov. 2001 7 144 inlägg Trådstart 14 jan. 2002 18:11 #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
L LarsG Medlem sedan dec. 2000 12 464 inlägg str = replace(str,search,"<b>" & search & "</b>",1,-1,vbTextCompare)
Jesper T Medlem sedan nov. 2001 7 144 inlägg 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]
L LarsG Medlem sedan dec. 2000 12 464 inlägg 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.
Jesper T Medlem sedan nov. 2001 7 144 inlägg 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 </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!
L LarsG Medlem sedan dec. 2000 12 464 inlägg <%
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>
Jesper T Medlem sedan nov. 2001 7 144 inlägg Ja då, ja då, jaaaaaaaaaaaa
Jesper T Medlem sedan nov. 2001 7 144 inlägg Det ser ju riktigt <b>snyggt</b> ut också!!
Tack!!//Jesper
hopparn Medlem sedan nov. 2001 1 551 inlägg 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*
hopparn Medlem sedan nov. 2001 1 551 inlägg hehe, den som testar skall se fungerande saker sa nån =)
tack tack
M Molna Medlem sedan jan. 2001 188 inlägg 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...
L LarsG Medlem sedan dec. 2000 12 464 inlägg 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"
M Molna Medlem sedan jan. 2001 188 inlägg 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?
L LarsG Medlem sedan dec. 2000 12 464 inlägg Nja, inte så där rakt av men det går (naturligtvis). Du måste använda regular expressions och utnyttja samlingen matches.
TextCompare är inte så bra i den koden.
Söker man på asp och ASP hittas så kommer <b>asp</b> skrivas i koden.
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.