Lo he intentando hacer como tu decías, pero aunque ya no da error me dice que no hay resultados. He probado poniendo:
Código asp:
Ver original
tmultiple = Remplaza(request.QueryString("tmultiple"),0) response.Write(tmultiple) response.end()
Y lo que me muestra está bien, es decir si copio, directamente del Titulo del registro: Director's Cut el response.write me muestra Director's Cut así que no tengo ni idea de donde puede estar el fallo.
Este es el formulario para elegir si busca Intérpretes, Titulo, Director o Todo.
Código asp:
Ver original
<form class="formulario1" action="buscarmultiple.asp?tmultiple=tmultiple" method="get" accept-charset="UTF-8"> <label class="invisible" for="tmultiple">Búsqueda</label> <input name="tmultiple" type="text" id="tmultiple" class="c1" size="5" value="Buscar"/> <label for="multiple"> <select class="c2" name="multiple" id="multiple"> <option value="1" selected="selected" id="Interprete">Interprete</option> <option value="2" id="Director" >Director</option> <option value="3" id="Titulo" >Titulo</option> <option value="4" id="Todas">Todas</option> </select> </label> <input class="fexplorer" type="submit" name="button3" id="button3" value="Buscar" /> </form>
Y este es el archivo buscarmultiple.asp, bueno parte de él pero es todo el rato igual:
Código asp:
Ver original
<% Public Function Remplaza(limpia,caso) Dim cadena cadena = trim(limpia) Select Case caso Case 0: cadena = replace(cadena,"'","'") cadena = replace(cadena,"¿","¿") cadena = replace(cadena,"¡","¡") cadena = replace(cadena,"ñ","ñ") cadena = replace(cadena,"Ñ","Ñ") cadena = replace(cadena,"á","á") cadena = replace(cadena,"Á","Á") cadena = replace(cadena,"é","é") cadena = replace(cadena,"É","É") cadena = replace(cadena,"í","í") cadena = replace(cadena,"Í","Í") cadena = replace(cadena,"ó","ó") cadena = replace(cadena,"Ó","Ó") cadena = replace(cadena,"ú","ú") cadena = replace(cadena,"Ú","Ú") cadena = replace(cadena,"'","'") Case Else cadena = limpia End Select Remplaza = cadena End Function %> <%tmultiple = Remplaza(request.QueryString("tmultiple"),0) mmultiple= request("multiple") Select case mmultiple%> <% case 1: ssql = "Select * from PELICULAS where Interpretes like '%" & tmultiple & "%' ORDER by " &_ "Anio,Titulo asc" tabla.Open sSQL,conexion,adopenstatic,adcmdtext 'resultados por pagina a elegir arbitrariamente' num_registros = 10 session("ssql")=ssql %>
En cadena he puesto lo de "& #39" sin espacio aunque por programación se vean iguales.
He echo otra prueba usando el escape con las pelis que tienen en el título Director's cut, buscandolas con director si me salen, y haciendo esto:
Código asp:
Ver original
<% tit = escape(tabla.fields("Titulo")) response.Write(tit)%> %>
Y me saca esto: Clerks%20Director%27s%20cut
He sustituido:
Código asp:
Ver original
cadena = replace(cadena,"'","& #39")
por
Código asp:
Ver original
cadena = replace(cadena,"'","& #27")
Pero sigue sin funcionar.
He hecho otra prueba poniendo en buscarmultiple.asp esto:
Código asp:
Ver original
<% tmultiple = Remplaza(request.QueryString("tmultiple"),0) session("multiple") = tmultiple%>
Y en nohayresultados.asp esto:
Código asp:
Ver original
<% a = session("multiple") b = escape(a) response.write(b) response.End()%>
Con
Código asp:
en buscarmultiple.asp y cuando escribo 's en el buscador me sale esto en pantalla:Ver original
cadena = replace(cadena,"'","& #39")
%26%2339s
No se porque me escribe eso en vez del %27 que necesito.