Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Ronaldo Bueno

grifar resultado da busca

Recommended Posts

Será que alguém poderia dar uma luz? estou um tempo tentando e não consigo:

 

a situação é a seguinte:

 

quando faz a busca, faço com like e retorna tudo certo, ai para grifar eu faço assim:

 

PalavraBuscaN = "<span style='color:#78a915;'><strong>" & PalavraBusca & "</strong></span>"

Variavel = RS("campo")
Variavel = Replace(Variavel,PalavraBusca,PalavraBuscaN)

 

funciona, mas da seguinte forma:

 

digitei Ant, a busca retorna tudo (esta correto), mas o grife só acontece na grafia certa

 

Antônio Pereira - grifou

Antônio Gomes - grifou

Roberto Dantas - n grifou (porque digitei Ant)

 

se digito ant

 

Antônio Pereira - n grifou

Antônio Gomes - n grifou

Roberto Dantas - grifou

 

o que acontece ? Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu uso este code:

<%
Dim strContent
        strContent = "Asa Dotzler recomendou que os usuários do Firefox usem o Bing em lugar do Google.<br>Primeiro SP para o SQL Server 2008 Express Edition já está disponível."

        if NOT IsEmpty(Request.Form("fldSearch")) and NOT trim(Request.Form("fldSearch")) = "" then
                set regX = New RegExp
                        src = Request.Form("fldSearch")
                regX.Pattern = src
                regX.IgnoreCase = true
                regX.Global = true
                set theString = regX.Execute(strContent)
                For each matchFound in theString
                strContent = Replace(strContent, matchFound.Value, "<span class=""nbgylw"">" & matchFound.Value & "</span>")
                Next
                set regX = nothing
                set theString = nothing
        end if

%>

<HTML>
<HEAD>
<TITLE> Highlighting </TITLE>
<style>
body {font-family: Arial, Verdana, Helvetica, sans-serif; background-color: #FFFFFF;}
.nbgylw {font-family: Arial, Verdana, Helvetica, sans-serif; background-color: #FFFFCC;}
</style>
</HEAD>
<body>
<table cellpadding="0" cellspacing="5" width="100%" border="0">
<tr><td>
<form action="highlight.asp" method="post">
<input type="text" name="fldSearch"> <input type="submit" value="Pesquisar">
</form>
</td></tr>
<tr><td>
<%=strContent%>
</td></tr>
</table>
</BODY>
</HTML>

%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

xan, testei funcionou, porém não consegui ver onde vou mexer no meu.

 

A minha parte vem de SQL, com um monte de coisas

 

Obrigado por responder

Compartilhar este post


Link para o post
Compartilhar em outros sites

vc tem que vincular o strContent com o conteúdo de sua pesquisa, no caso ao invés do request.form use o recordset seu. Ou olha este outro exemplo:

 

 

<%
Dim a, strText

strText = "Juniores vencem na estreia do Campeonato Paulista
Novodom, 11 de mai de 2014.Na estreia do Campeonato Paulista Sub-20, o Santos FC venceu o São Bernardo por 2 a 1 na manhã deste sábado (10), no ABC.."

a = highlight(strText, "Sub-20", false)

Response.Write a

%>

 

vc pode pegar o conteúdo de sua consulta e jogar no strText, e usar esta função.

 

<%
Private Function HighLight(ByVal strToHighlight, ByVal strKeywords, ByVal bPhrase)
'--- strToHighlight = string para destacar
'--- strKeyWords = palavra ou conjunto de palavras para pesquisar
'--- bPhrase = highlight: true=frase exata, false=qualquer palavra
Dim i, j, iKwd, strkwd
Dim matchPos1
Dim matchPos2
Dim matchPos3
Dim badChar
Dim strBegin
Dim strEnd
Dim tempStoreKeyword
Dim objKWRegExp
Dim objLRegExp
Dim objStripHTMLRegExp
Dim HlColor
HlColor = "yellow" '--- cor de destaque de fundo
Set objStripHTMLRegExp = New RegExp
objStripHTMLRegExp.IgnoreCase = True
objStripHTMLRegExp.Global = True
objStripHTMLRegExp.Pattern = "<\S+>"
strToHighlight = objStripHTMLRegExp.Replace(strToHighlight, " ")
Set objLRegExp = New RegExp
objLRegExp.Global = True
objLRegExp.Pattern = "(\+|\?|\$|\(|\)|\.|\||\{|\}|\[|\]|\^|\*|\\)"
Set objKWRegExp = New RegExp
objKWRegExp.IgnoreCase = True
objKWRegExp.Global = True
strKeywords = Trim(strKeywords)
strKeywords = Replace(strKeywords, ",", " ")
strKeywords = Replace(strKeywords, ";", " ")
If Not bPhrase Then
strKeywords = Split(strKeywords, " ")
End if
If Not IsArray(strKeywords) Then
strKwd = Replace(strKeywords, """, """")
objKWRegExp.Pattern = "()(" & objLRegExp.Replace(strKwd, "\$1") & ")()"
strToHighlight = objKWRegExp.Replace(strToHighlight, "$1<span style='background-color: " & _
HlColor & ";'>$2</span>$3")
Else
For i = 0 To UBound(strKeywords) - 1
For j = i + 1 To UBound(strKeywords)
if Len(strKeywords(i)) < Len(strKeywords(j)) Then
tempStoreKeyword = strKeywords(i)
strKeywords(i) = strKeywords(j)
strKeywords(j) = tempStoreKeyword
End if
Next
Next
Do While (iKwd <= UBound(strKeywords)) And (InStr(strToHighlight, "<span") = 0)
objKWRegExp.Pattern = "()(" & objLRegExp.Replace(strKeywords(iKwd), "\$1") & ")()"
strToHighlight = objKWRegExp.Replace(strToHighlight, "$1<span style='background-color: " & _
HlColor & ";'>$2</span>$3")
iKwd = iKwd + 1
Loop
For i = iKwd to UBound(strKeywords)
matchPos1 = InStr("<span style='background-color: " & _
HlColor & ";'></span>", LCase(strKeywords(i)))
matchPos2 = matchPos1 + Len(strKeywords(i))
matchPos1 = matchPos1 - 1
matchPos3 = InstrRev("<span style='background-color: " & _
HlColor & ";'></span>", LCase(strKeywords(i))) - 1
if matchPos1 > -1 then
if matchPos3 = matchPos1 then
badChar = Mid("<span style='background-color: " & HlColor & ";'></span>", matchPos1, 1)
if badChar <> " " then strBegin = "([^" & badChar & ])(" Else strBegin = "()("
badChar = Mid("<span style='background-color: " & HlColor & ";'></span>", matchPos2, 1)
if badChar <> " " then strEnd = ")([^" & badChar & ])" Else strEnd = ")()"
objKWRegExp.Pattern = strBegin & objLRegExp.Replace(strKeywords(i), "\$1") & strEnd
strToHighlight = objKWRegExp.Replace(strToHighlight, "$1<span style='background-color: " & _
HlColor & ";'>$2</span>$3")
end if
else
objKWRegExp.Pattern = "()(" & objLRegExp.Replace(strKeywords(i), "\$1") & ")()"
strToHighlight = objKWRegExp.Replace(strToHighlight, "$1<span style='background-color: " & _
HlColor & ";'>$2</span>$3")
end if
Next
End If
HighLight = strToHighlight
End Function
%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

resolvi, fiz uma BAITA, uma GRANDE POG kkkkk

 

Vou deixar registrado aqui para quem sabe ajudar alguém e sugestões sempre são de ótima utilidade.

'Peguei o campo duas vezes, porque na hora do MID ele não pega o (A) se digitou (a) e vice-versa
Empresa 	= Lcase(RS("campo"))
EmpresaComoEsta = RS("campo")
PalavraBusca = Lcase(PalavraBusca)

QtoTemEmpresaCompleto = Len(Empresa)
QtoTemPalavraBusca = Len(PalavraBusca)
OndeComecaPalavraBusca = InStr(Empresa,PalavraBusca)

EmpresaCompleto = ""
EmpresaCompleto = EmpresaCompleto & Mid(EmpresaComoEsta,1,OndeComecaPalavraBusca-1)
EmpresaCompleto = EmpresaCompleto & "<span style='color:#78a915;'><strong>"
EmpresaCompleto = EmpresaCompleto & Mid(EmpresaComoEsta,OndeComecaPalavraBusca,QtoTemPalavraBusca)
EmpresaCompleto = EmpresaCompleto & "</strong></span>"
EmpresaCompleto = EmpresaCompleto & Mid(EmpresaComoEsta,OndeComecaPalavraBusca+QtoTemPalavraBusca,QtoTemEmpresaCompleto-1)

Empresa = EmpresaCompleto
response.write "" & Empresa & "<br />"

Compartilhar este post


Link para o post
Compartilhar em outros sites

e a POG vence....aha... mas valeu

Compartilhar este post


Link para o post
Compartilhar em outros sites

1175422_714835018560297_2296038501257836

Compartilhar este post


Link para o post
Compartilhar em outros sites

fazer uma funçãozinha para ele pegar ambos os caracteres (A) e (a), tem uma função assim que postei no fórum, para trabalhar com string, pode ser implementada nela

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.