我正在使用ColdFusion 9和最新最好的jQuery。
在我的页面顶部,我使用了这个:
<cfajaxproxy cfc="artists" jsclassname="jsApp">
我有一个搜索栏:
<input id="Artist" class="Search" type="text">
当用户键入搜索字段时,该值将传递到jQuery函数:
$(".Search").keyup(function() {
var Artist = $("#Artist").val();
var QString = "Artist=" + Artist;
$("#ArtistSearchResultsDiv").load("ArtistSearchResults.cfm?"+QString);
});
搜索结果div在CFSCRIPT中加载包含这些项目的页面:
objArtists = createObject("component", "artists");
GetArtists = objArtists.getArtists(Artist);
我有一个运行查询的CFC并返回正确的记录。
问题是,当我在搜索框中输入内容时,只要我点击一个空格,就不会再向QString变量添加任何值,因此这些值不会传递给查询。
在搜索“The Beatles”时,这是Firebug中搜索字符串的大小:
GET http://127.0.0.1:8500/WebSites/AwesomeAlbums/GlobalAdmin/ArtistSearchResults.cfm?Artist=The
一看到空间就会停止。
因此,如果您正在搜索“The Beatles”,则只会将值“The”传递给QString变量。如果您正在搜索“Celine Dion”,只会通过“Celine”。
我假设我需要以某种方式对QString进行URL编码。那是对的吗?我该怎么做?
答案 0 :(得分:9)
var QString = "Artist=" + encodeURIComponent(Artist);