2010-09-29 23 views
0

我正在通過AJAX將值提交到數據庫。目前,它用了jQuery的Ajax object.My Ajax代碼基本上是這樣的:&價值沒有出現在AJAX調用

enter code here 

VAR流派= form.new_album_genre.value; form.new_album_genre.value =「」;

$.ajax({ 
    type: "POST", 
    data: "genre="+genre+"&app="+app, 
    url: 'apps/PVElectronicPressKitAdmin/ajax_add_album_genre.php', 
    success: function(data) { 
    $('#'+divID).html(data); 

} });

簡而言之,它從表單中獲取值,然後通過帖子提交數據。如果類型與R & B類似,則失敗。&符號不是sumbitting,只有R是。那麼如何通過AJAX提交價值,包括&,+和=?

回答

1

您需要encodeURIComponent來處理URI中具有特殊含義的字符。

(或者傳遞包含鍵/值對jQuery的對象,而不是查詢字符串String你現在有)

+0

由於有特殊字符的一個問題,即quicky和容易 – 2010-09-29 18:34:18

+0

工作了可擴展性和維護的目的,但是,你使用這些數據會更好:{//插入對象鍵:值對}。否則,每次都必須記住encodeURIComponent()。此外,通過巨大的查詢字符串是如此2002 ... – 2010-09-29 18:42:28

0

使用

$.ajax({ 
    type: "POST", 
    data: "genre="+encodeURIComponent(genre)+"&app="+encodeURIComponent(app), 
    url: 'apps/PVElectronicPressKitAdmin/ajax_add_album_genre.php', 
    success: function(data) { 
    $('#'+divID).html(data); 

因爲&它被解釋爲一個新的參數。
在您的案例中,數據看起來像流派= R & B & app = somethig - >這意味着3個參數:流派,B和應用程序。

+1

不要使用'逃生',它不能正常工作,並已棄用! – Quentin 2010-09-29 18:24:04

+0

@David Dorward:你說得對。我修改了答案。 – CristiC 2010-09-29 18:32:13

0

我從來沒有使用

$.post('apps/PVElectronicPressKitAdmin/ajax_add_album_genre.php', { 
    'genre' : genre, 
    'app' : app 
}, 
function(data) { 
    $('#'+divID).html(data); 
}); 
0

捎帶過戴維·多沃德的回答

$.ajax({ 
      type: 'POST', 
      url: 'apps/PVElectronicPressKitAdmin/ajax_add_album_genre.php', 
      data: { genre : form.new_album_genre.value, app: form.app.value }, 
      success: function (data, textStatus) { 
       $('#'+divID).html(data); 

      } 
     });