Passer le caractère & en parametre en Ajax

Fermé
mariostar27 Messages postés 391 Date d'inscription mercredi 17 juin 2009 Statut Membre Dernière intervention 21 août 2015 - 14 mars 2012 à 19:40
afrnos Messages postés 59 Date d'inscription mercredi 26 novembre 2008 Statut Membre Dernière intervention 12 avril 2012 - 15 mars 2012 à 10:42
Bonjour,

Voila je code en PHP et je souhaite passé le caractère & en Ajax. J'utilise jQuery et j'ai donc ceci :

$.ajax({
        type: "post",
        url: "monurl.php",
        data: "titre="+titre+"&contenu="+contenu,
        complete:
            function(req){

                ...

            }
    });


mais quand j'ai le caractère & dans ma variable contenu ou titre, cela ne fonctionne plus tu tout.

Aider moi svp, merci d'avance.


A voir également:

4 réponses

afrnos Messages postés 59 Date d'inscription mercredi 26 novembre 2008 Statut Membre Dernière intervention 12 avril 2012 16
Modifié par afrnos le 15/03/2012 à 10:43
Bonjour,

Le problème vient de votre code javascript qui, comme vous l'avez deviné, n'est pas adaptée pour prendre un compte le caractère & dans l'url

Pour régler ce problème, il faut que vous passiez par une fonction javascript qui se charge de ça : encodeURIComponent .

var titre = encodeURIComponent(titre); 
var contenu = encodeURIComponent(contenu); 

$.ajax({ 
        type: "post", 
        url: "monurl.php", 
        data: "titre="+titre+"&contenu="+contenu, 
        complete: 
            function(req){ 

                ... 

            } 
    });

Afrnos GH
1
Autumn`Tears Messages postés 1054 Date d'inscription samedi 14 mars 2009 Statut Membre Dernière intervention 23 octobre 2013 144
14 mars 2012 à 20:08
Salut,

Essaie &
En revanche, avec des fichiers encodés en UTF-8 et un charset également en UTF-8, ça ne devrait pas poser de problème.
0
mariostar27 Messages postés 391 Date d'inscription mercredi 17 juin 2009 Statut Membre Dernière intervention 21 août 2015 26
14 mars 2012 à 20:11
Justement, c'est le & qui merde. si contenu = "Alain & Anais" , bas du coté PHP, $_POST['contenu'] vaudra "Alain " seulement.
0
Autumn`Tears Messages postés 1054 Date d'inscription samedi 14 mars 2009 Statut Membre Dernière intervention 23 octobre 2013 144
14 mars 2012 à 20:17
Ah effectivement, et avec un htmlentities($_POST['contenu']) ?
0
mariostar27 Messages postés 391 Date d'inscription mercredi 17 juin 2009 Statut Membre Dernière intervention 21 août 2015 26
14 mars 2012 à 20:20
si je fais un htmlentities($_POST['contenu']) il ne me donnera pas la suite qu'il manque. directement dans le fichier PHP, echo $_POST['contenu'] me donne se que j'ai donné
0
Autumn`Tears Messages postés 1054 Date d'inscription samedi 14 mars 2009 Statut Membre Dernière intervention 23 octobre 2013 144
Modifié par Autumn`Tears le 14/03/2012 à 20:36
Essaie avec & a m p ; (sans espace, je viens juste de me rendre compte que ça le tronque...)
0