2010-09-29 2 views
0

Je travaille sur la soumission de valeurs dans une base de données via AJAX. Il utilise actuellement le code Ajax JQuery object.My Ajax ressemble fondamentalement ceci:& Valeur n'apparaissant pas avec l'appel AJAX

enter code here 

var genre = 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); 

} }); En bref, il obtient une valeur à partir d'un formulaire et soumet ensuite les données via une publication. Où il échoue si le genre est quelque chose comme R & B. Le symbole & n'est pas en train de tomber et seul le R est. Alors, comment puis-je soumettre des valeurs via AJAX, y compris &, + et =?

Répondre

1

Vous avez besoin de encodeURIComponent pour gérer les caractères ayant une signification particulière dans les URI.

(Ou passer un objet contenant des paires clé/valeur à jQuery au lieu de la chaîne de requête String vous avez maintenant)

+0

Merci, qui a travaillé Quicky et facilement –

+0

à des fins d'extensibilité et d'entretien, cependant, vous Il vaut mieux utiliser les données: {// insérer la clé d'objet: paires de valeurs ici} approche. Sinon, vous devrez vous souvenir d'encoderURIComponent() à chaque fois. De plus, passer des chaînes de requête géantes est donc 2002 ... –

0

Utilisez

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

En raison de la & il est interprété comme un nouveau paramètre.
Dans votre cas, les données ressembleront à Genre = R & B & app = somethig -> cela signifie 3 paramètres: genre, B et app.

+1

N'utilisez pas 'escape', cela ne fonctionne pas correctement et a été abandonné! – Quentin

+0

@David Dorward: vous avez raison. J'ai modifié la réponse. – CristiC

0

Je ne l'ai jamais eu un problème avec les caractères spéciaux en utilisant

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

Ferroutage de David réponse

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

      } 
     });