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