&价值没有出现在AJAX调用

问题描述:

我正在通过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提交价值,包括&,+和=?

您需要encodeURIComponent来处理URI中具有特殊含义的字符。

(或者传递包含键/值对jQuery的对象,而不是查询字符串String你现在有)

+0

由于有特殊字符的一个问题,即quicky和容易 – 2010-09-29 18:34:18

+0

工作了可扩展性和维护的目的,但是,你使用这些数据会更好:{//插入对象键:值对}。否则,每次都必须记住encodeURIComponent()。此外,通过巨大的查询字符串是如此2002 ... – 2010-09-29 18:42:28

使用

$.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

我从来没有使用

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

捎带过戴维·多沃德的回答

$.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); 

      } 
     });