J'envoie du HTML via POST et les '&' sont en train de gâcher, comment puis-je l'éviter? J'ai essayé de remplacer & par \ &, ça n'a pas marché.

Pour plus d'informations: j'essaie d'utiliser des modèles d'e-mails dans un projet interne et des trucs comme & nbsp fout le POST que j'utilise pour les envoyer de javascript à php.

Code ci-dessous:

emailcontinut = CKEDITOR.instances['emailContinut'].getData();
var parametri = "Trimite="+trimite + "&codc="+codc + "&emailSubiect="+emailsubiect + "&emailContinut="+emailcontinut + "&adact="+adact + "&sid="+Math.random();


xmlhttp_email_actiune.open("POST",url,true);
xmlhttp_email_actiune.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlhttp_email_actiune.setRequestHeader("Content-length", parametri.length);
xmlhttp_email_actiune.setRequestHeader("Connection", "close");
xmlhttp_email_actiune.send(parametri);

Quand je fais écho à $ _POST ['emailContinut'] dans le PHP cible, il s'arrête au premier '&' dans un & nbsp

La solution était juste

emailcontinut =  escape(emailcontinut); 

En javascript puis en utilisant stripslashes () en php pour le décoder. Merci.

-3
Bogdan 16 déc. 2011 à 17:46

3 réponses

Meilleure réponse

Il vous suffit d'utiliser la fonction d'échappement JS pour coder l'URL et envoyer l'appel ajax en utilisant une URL codée, par exemple:

var url = "http://127.0.0.1/ajaxResource.php?p1=100&p2=2000&p3=name";
url = escape(url); //Now the user is encoded use this url in ajax

JP

1
user364403 16 déc. 2011 à 13:54

Vous devez coder URL et / ou coder HTML votre contenu, selon ce que vous faites réellement.

3
SLaks 16 déc. 2011 à 13:48

Essayez de les remplacer par &

Cela fonctionne pour les attributs href et src en HTML

0
DarkDevine 16 déc. 2011 à 13:49