2011-09-19 32 views
5

Tôi đang sử dụng ColdFusion 9 và jQuery mới nhất và lớn nhất.jQuery - Tôi có cần URL mã hóa một biến không?

Ở phía trên cùng của trang web của tôi, tôi sử dụng này:

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

Tôi có một trường tìm kiếm:

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

Khi một loại sử dụng trong lĩnh vực tìm kiếm, giá trị được truyền vào một Hàm jQuery:

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

Kết quả tìm kiếm div tải trang có các mục này trong CFSCRIPT:

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

Tôi có CFC chạy truy vấn và trả về các bản ghi chính xác.

VẤN ĐỀ là khi tôi nhập vào hộp tìm kiếm, ngay khi tôi nhấn vào một khoảng trống, không thêm giá trị nào được thêm vào biến QString và do đó các giá trị đó không được chuyển đến truy vấn.

Dưới đây là bao nhiêu chuỗi tìm kiếm sẽ tìm trong Firebug khi tìm kiếm cho "The Beatles":

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

Nó dừng lại ngay khi nó nhìn thấy một không gian.

Vì vậy, nếu bạn đang tìm kiếm "The Beatles", chỉ giá trị "The" sẽ được chuyển vào biến QString. Nếu bạn đang tìm kiếm "Celine Dion", chỉ "Celine" mới được chuyển.

Tôi giả sử rằng tôi cần URL mã hóa QString bằng cách nào đó. Đúng không? Làm thế nào để làm điều đó?

+1

Có. Không cho người dùng nhập vào. –

+1

Có, tôi sẽ không tin tưởng bất cứ ai tìm kiếm "Celine Dion". Trong thực tế, tôi nên chặn một địa chỉ IP, ngay sau khi họ nhận được để "Celi". –

Trả lời

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

Aweome! Đây là câu trả lời. Chính xác là thông tin mà tôi cần. –

Các vấn đề liên quan