Passer le caractère & en parametre en Ajax

mariostar27 Messages postés 442 Statut Membre -  
afrnos Messages postés 61 Statut Membre -
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.



--
gwennael

4 réponses

  1. afrnos Messages postés 61 Statut Membre 16
     
    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
  2. Autumn`Tears Messages postés 1247 Statut Membre 145
     
    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
  3. mariostar27 Messages postés 442 Statut Membre 26
     
    Justement, c'est le & qui merde. si contenu = "Alain & Anais" , bas du coté PHP, $_POST['contenu'] vaudra "Alain " seulement.
    0
    1. Autumn`Tears Messages postés 1247 Statut Membre 145
       
      Ah effectivement, et avec un htmlentities($_POST['contenu']) ?
      0
  4. mariostar27 Messages postés 442 Statut Membre 26
     
    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
    1. Autumn`Tears Messages postés 1247 Statut Membre 145
       
      Essaie avec & a m p ; (sans espace, je viens juste de me rendre compte que ça le tronque...)
      0