Passer le caractère & en parametre en Ajax

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. 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
    1. Justement, c'est le & qui merde. si contenu = "Alain & Anais" , bas du coté PHP, $_POST['contenu'] vaudra "Alain " seulement.
      0
      1. Ah effectivement, et avec un htmlentities($_POST['contenu']) ?
        0
    2. 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. Essaie avec & a m p ; (sans espace, je viens juste de me rendre compte que ça le tronque...)
        0
    3. 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