2011-09-19 16 views
5

Estoy usando ColdFusion 9 y la última y mejor jQuery.jQuery - ¿Necesito que la URL codifique una variable?

En la parte superior de mi página, yo uso esto:

<cfajaxproxy cfc="artists" jsclassname="jsApp"> 

Tengo un campo de búsqueda:

<input id="Artist" class="Search" type="text"> 

Cuando un usuario escribe en el campo de búsqueda, el valor se pasa a una función de jQuery:

$(".Search").keyup(function() { 
    var Artist = $("#Artist").val(); 
    var QString = "Artist=" + Artist; 
    $("#ArtistSearchResultsDiv").load("ArtistSearchResults.cfm?"+QString); 
}); 

los resultados de búsqueda div carga una página con estos artículos en CFScript:

objArtists = createObject("component", "artists"); 
GetArtists = objArtists.getArtists(Artist); 

Tengo un CFC que ejecuta la consulta y devuelve los registros correctos.

El PROBLEMA es que cuando escribo en el cuadro de búsqueda, tan pronto como toco un espacio, no se agrega más valor a la variable QString, por lo que esos valores no se pasan a la consulta.

Así es como mucho cadena de búsqueda se ve en Firebug en la búsqueda de "The Beatles":

GET http://127.0.0.1:8500/WebSites/AwesomeAlbums/GlobalAdmin/ArtistSearchResults.cfm?Artist=The 

Es detiene tan pronto como se ve un espacio.

lo tanto, si usted estaba buscando "The Beatles", sólo el valor "El" se pasó a la variable QString. Si estuvieras buscando "Celine Dion", solo se aprobará "Celine".

Supongo que necesito que la URL codifique el QString de alguna manera. ¿Es eso correcto? ¿Cómo puedo hacer eso?

+1

Sí. Desconfíe de la entrada del usuario. –

+1

Sí, desconfiaría de cualquiera que busque "Celine Dion". De hecho, debería bloquear una dirección IP tan pronto como lleguen a "Celi". –

Respuesta

9
var QString = "Artist=" + encodeURIComponent(Artist); 
+0

¡Aweome! Esta es la respuesta. Es EXACTAMENTE la información que necesitaba. –

Cuestiones relacionadas