Ver Mensaje Individual
  #4 (permalink)  
Antiguo 18/04/2008, 12:12
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

Hey, gracias a ambos por responder, me habeis sido de gran ayuda

El código finalmente ha quedado así

Código PHP:
<%
Dim ExplDocregistrosimarcaarray_cadenastrOriginal
ExplDoc 
' Este campo es de texto
Call Registro (rs2)
SQL="SELECT ExplDoc, IBol from table where IBol =   ...."
rs2.Open SQL, fconn
registros=rs2.getrows
Call LimpiarRS (rs2)
Call LimpiarConexion (fconn)
 
For i=0 to UBound(registros,2) ' 
Listo los resultados
marca 
Trim(Request.QueryString("clave")) ' Recoge los parámetros de la busqueda
IF marca = "" then
%>
<%=registros(ExplDoc,i)%>
<%
ELSE
array_cadena  = Split(marca," ")
StrOriginal = registros(ExplDoc,i)
%>
<%=ResaltaParam(StrOriginal)%>
<%
END IF
Next ' 
i
%> 
El include

Código PHP:
Dim marcaarray_cadena
Dim n
CoincidenciastrCadenastrMarcado
Function ResaltaParam(strOriginal)
marca Trim(Request.QueryString("clave"))
array_cadena  Split(marca," ")
For 
n=0 to UBound(array_cadena)
Dim objRegExp 
Set objRegExp 
= new RegExp
With objRegExp
.Pattern = ("\b("&array_cadena(n)&")+\b")
.
IgnoreCase True
.Global = True
End With
Set strCadena 
objRegExp.Execute(strOriginal)
For 
Each Coincidencia in strCadena
strMarcado 
objRegExp.replace(strOriginal"<span class=""bgC"&n&""">$1</span>")
Next
ResaltaParam 
strMarcado
Set objRegExp 
nothing
Next n
End 
Function 
Ahora me surge otro problemas con el que no habia contado, si el valor que le paso a expresión está acentuado, repite el registro anterior tantas veces como el número de registros que han de ser mostrados.

Un supuesto

Se han de mostrar 100 registros coincidentes con la consulta. Si el registro número 20 lleva una palabra acentuada y esa palabra hay que resaltarla por que es una de las palabras que llegaron a traves de la query, hasta el registro 19 se muestran correctamente y después se repite ese mismo registro hasta que acabe el ciclo, en este caso 81 veces.

¿Alguna idea?

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;" />