Newsgroup: it.comp.www.asp
Titolo: [ASP 3.0]Evidenziare parola cercarta nei risultati di una ricerca

Ciao a tutti, vorrei avere un piccolo suggerimento.
Ho creato per il mio sito un piccolo motore di ricerca che fa ricerca sul 
un DB Access 2000. La ricerca mi da come risultato sia il titolo che la 
descrizione.
Ora ciò che vorrei è che nella descrizione, la/e parola/e che ho 
utilizzato nella ricerca siano evidenziate.
Se qualcuno ha dei suggerimenti vi ringrazio in anticipo
Estel
Codice della pagina che esegue la ricerca e mostra i risultati
<!--#Include virtual="/asp/ricerca/connect.asp"-->
<html>
<head>
<title>Documento senza titolo</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="../../css/main.css" rel="stylesheet" type="text/css">
</head>
<body>
<span class="testo">
<%
		Dim strCerca
		Dim item
		Dim arrCerca
		Dim rs
		Dim Sql
		Dim PaginaCorrente
		Dim i
		Dim npagine
 
		If Request("strCerca") = "" Then
			Response.Redirect("default.asp")
		End If
 
		PaginaCorrente = 1
 
		If Request("pagina") <> "" Then
			PaginaCorrente = CInt(Request("pagina"))
		End If
 
		strCerca = Request("strCerca")
		strCerca = Replace(strCerca,"'"," ")
		strCerca = Replace(strCerca,"strCerca","<b>strCerca</b>")
		strCerca = Trim(strCerca)
 
		If strCerca <> "" Then
			arrCerca = Split(strCerca," ",-1,1)
			'strCerca = Replace(strCerca,"strCerca","<b>strCerca</b>")
 
 
			OpenConnection
 
				Sql = "SELECT * FROM ricerca WHERE Attivo=true AND "
 
				For Each item In arrCerca
					Sql = Sql & "Titolo LIKE '%" & item & "%' OR Descrizione LIKE '%" & 
item & "%' OR Url LIKE '%" & item & "%' "
					If Request("opzione") = "And" Then
						Sql = Sql & "AND "
					Else
						Sql = Sql & "OR "
					End If
				Next
 
				Sql = Left(Sql,Len(Sql)-4) + " ORDER BY Click DESC, Data"
 
				Set rs = Server.CreateObject("ADODB.Recordset")
 
					rs.PageSize = record
					rs.CacheSize = record
					rs.Open Sql,Connection,adOpenKeyset,adLockOptimistic
 
						rs.AbsolutePage = PaginaCorrente
						npagine = rs.RecordCount
 
						'item = Replace(item,"item","<b>item</b>")
 
			%>
</span>
<table width="95%"  border="0" align="center" cellpadding="5" 
cellspacing="5">
   <tr>
     <td colspan="2" align="center" valign="middle" class="testo">
       <%
										If npagine = 1 Then
											Response.Write("Trovato <b>1</b> risultato per la tua ricerca.")
										Else
											Response.Write("Trovati <b>"&npagine&"</b> risultati per la tua 
ricerca.")
										End If
							%>
     </td>
   </tr>
   <tr>
     <td width="80%" valign="top"><table width="95%"  border="0" 
cellspacing="0" cellpadding="00">
         <%
					  					i = 0
											For i = 0 To record-1
					 		 %>
         <tr>
           <td class="ricerca_titolo"><a href="go.asp?url=<%=rs("Url")%>" 
target="_blank"><%=rs("Titolo")%></a></td>
         </tr>
         <tr>
           <td class="testo"><br>
               <%=rs("Descrizione")%><br></td>
         </tr>
         <tr>
           <td class="ricerca_sottotitolo"><a 
href="go.asp?url=<%=rs("Url")%>" target="_blank" 
class="ricerca_link"><%=rs("Url")%></a>&nbsp; Click: <%=rs("Click")%> 
&nbsp;Inserito il <%=FormatDateTime(rs("Data"),2)%> -
               <%If rs("Visibile") = true Then Response.Write("<a 
href=""mailto:"&rs("Email")&""" 
class=""ricerca_link"">"&rs("Email")&"</a>") Else Response.Write(" ") End 
If%></td>
         </tr>
         <tr>
           <td class="testo">-----</td>
         </tr>
         <%
						  					rs.MoveNext
											If rs.Eof then Exit For
										Next
						  	%>
     </table></td>
     <td valign="top">&nbsp;</td>
   </tr>
</table> <%
 
	  					Call Navigatore(rs,PaginaCorrente)
					rs.Close
				Set rs = Nothing
 
			CloseConnection
	%>
	<!--#Include virtual="/asp/include.asp"-->
	<%
		Else
			Response.Write("<table width=""95%""  border=""0"" align=""center"" 
cellpadding=""5"" cellspacing=""5"">")
			Response.Write("<tr><td class=""testo"" align=""center"" 
valign=""middle"">")
			Response.Write("Le parole utilizzate per la ricerca non sono 
valide.<br>")
			Response.Write("<a href=""default.asp""><b>Torna alla pagina della 
ricerca</b></a>")
			Response.Write("</td></tr></table>")
		End If
	%>
     <br>
     <br>
     <table width="100%"  border="0" cellspacing="5" cellpadding="5">
       <tr>
         <td align="center" valign="middle" class="testo"><a 
href="../../default.asp">Home Page</a> | <a href="default.asp">Cerca 
Ancora</a> </td>
       </tr>
     </table>	
</body>
</html>
-- 
Creato con M2, il rivoluzionario client e-mail di Opera: 
http://www.opera.com/m2/


Io modifichere queste sezioni di codice:
rs.PageSize = record
rs.CacheSize = record
rs.Open Sql,Connection,adOpenKeyset,adLockOptimistic
rs.AbsolutePage = PaginaCorrente
npagine = rs.RecordCount
if npagine=0 then
titolo=rs("titolo")
descrizione=rs("descrizione")
titolo=replace(titolo,strcerca,"<b>"+strcerca+"</b>")
descrizione=replace(descrizione,strcerca,"<b>"+strcerca+"</b>")
E questa sezione la modificherei in questo modo:
       <tr>
           <td class="ricerca_titolo"><a href="go.asp?url=<%=rs("Url")%>"
target="_blank"><%=titolo%></a></td>
         </tr>
         <tr>
           <td class="testo"><br>
               <%=descrizione%><br></td>
         </tr>
Ciao
-- 
AZ [Microsoft - .NET MVP]
Mia Home page: 
http://ciclismo.sitiasp.it
Asp.Net community: 
http://www.aspitalia.com
Il mio blog: 
http://blogs.aspitalia.com/az

Grazie mille funziona alla grande :))
Ciao


 Ciao
Prego :)


Come già detto il sistema funziona alla grande solo che se io scrivo una 
parola con le lettere minuscole e nel testo è presente con la lettera 
maiuscola non me la evidenzia, e viceversa.
C'è un modo per aggirare questo problema?
Grazie mille


 Grazie mille
Si, fai un cotrollo usantdo lcase o ucase...
ovvero:
If lcase(ParolaDaCercare) = lcase(ParolaSulDb) Then Replace(Stringa,
ParolaDaCercare, "<b>" & ParolaDaCercare & "</b>")