Ver Mensaje Individual
  #6 (permalink)  
Antiguo 21/04/2008, 06:26
Avatar de Adler
Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 18 años, 4 meses
Puntos: 126
Re: resaltar parámetros de busqueda

Gracias Shiryu por responder.

Esa función no me es válida ya que, aunque en el código que imprimí anteriormente no aparace estoy usando escape.

¿Alguna otra idea?

Siguiendo con el tema, estoy teniendo problemas con otro código muy parecido.
En esta ocasión la consulta solo encuentra un registro, pero ese registros puede llegar a tener hasta 20000 palabras, así que para ficilitarle al usuario que encuentre en el doc los terminos que ingreso en el buscado, pues quiero resaltarlos

El problema está en que solamente resalta el último termino ingresado

Código PHP:
marca Trim(Request.QueryString("clave")) ' recoge los terminos de query
array_cadena  = Split(marca," ")
plbraClave = unescape(rs.Fields("Clave")) ' 
este es un listado de palabras claves si alguno de los terminos de la busqueda no encaja con estas palabras clavesse eliminan con la funcion Encuentra
strOriginal 
unescape(rs.Fields("Cuerpo"))  sobre este texto se busca los terminos resultantes de la funcion Encuentra
PLlave 
Encuentra(plbraClave)
Dim arr
arr 
Split(Trim(PLlave), " ")
%>
<%=
ResaltaParam(PLlavestrOriginal)%> 
Estas son las funciones

Código PHP:
Dim nobjRegExpstrClaveCoincidenciastrLlavestrCadenastrMarcado
Function Encuentra (plbraClave' elimina terminos prohibidos
For n=0 to UBound(array_cadena)
Set objRegExp = new RegExp
objRegExp.Pattern = "\b("&array_cadena(n)&")+\b"
objRegExp.IgnoreCase = True
objRegExp.Global = True
Set strClave = objRegExp.Execute(plbraClave)
For Each Coincidencia in strClave
strLlave = strLlave  & Coincidencia.Value & " "
Next
Encuentra = strLlave
Set strClave = nothing
Set objRegExp = nothing
Next '
n
End 
Function

Function 
ResaltaParam (PLlavestrOriginal' resalta terminos
For n=0 to UBound(arr)
Set objRegExp = new RegExp
objRegExp.Pattern = "\b("&arr(n)&")+\b"
objRegExp.IgnoreCase = True
objRegExp.Global = True
Set strCadena = objRegExp.Execute(strOriginal)
For Each Coincidencia in strCadena
strMarcado = objRegExp.replace(strOriginal, "<span class=""bgC"&n&""">$1</span>")
Next
ResaltaParam =  strMarcado
Set strCadena = nothing
Set objRegExp = nothing
Next '
n
End 
Function 
Gracias
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />