[javascript] parametre POST avec '&' ds texte

Résolu/Fermé
kij_82 Messages postés 4089 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 - 24 janv. 2008 à 14:16
kij_82 Messages postés 4089 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 - 24 janv. 2008 à 14:59
Bonjour,

J'ai actuellement un souci pour passer une valeur à un paramètre d'url.
En bref, ma valeur contient un texte HTML lui même contenant plusieurs fois le caractères '&', ce qui provoque une "rupture" de la valeur réceptionnée dans mon script PHP.

Les détails : j'utilise en fait la fonction javascript suivante :
function callScript ( scriptName, data ){
	
	var xhr_object = null; 
	     
	if(window.XMLHttpRequest) // Firefox 
	   xhr_object = new XMLHttpRequest(); 
	else if(window.ActiveXObject) // Internet Explorer 
	   xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
	else { // XMLHttpRequest non supporté par le navigateur 
	   alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
     return; 
	} 
	 
	xhr_object.open("POST", scriptName, true);
	     
	xhr_object.onreadystatechange = function() {
	   if(xhr_object.readyState == 4) {
			//alert(xhr_object.responseText); // DEBUG MODE
			//document.write(xhr_object.responseText);
			eval(xhr_object.responseText);
		 }
	} 
	 
	xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	xhr_object.send(data);
}


me permettant d'éxécuter un script PHP et de raffraichir mon interface.
Le passage de paramètre au script PHP se fait via la variable data.

Dans mon exemple, j'ai un paramètre que je nommerai 'toto' qui prend pour valeur 'papa & maman'.
Je renseigne donc de la facon suivante ma fonction :
callScript("monscript.php", "toto=papa & maman"

afin de faire appel à mon script PHP.
Or, comme la valeur contient '&', dans le script PHP je ne réceptionne que "papa " comme valeur, ce qui est logique puisque le reste et interprété comme un deuxième paramètre.

Ma question est donc la suivante : existe-t-il un moyen en javascript pour encoder le caractère &, et le décoder en PHP ?

Merci pour votre aide, si vous avez des questions je suis là.
A voir également:

2 réponses

Xil Messages postés 350 Date d'inscription vendredi 18 janvier 2008 Statut Membre Dernière intervention 11 juin 2009 257
24 janv. 2008 à 14:43
La fonction javascript escape() permet de faire ceci. (https://www.w3schools.com/jsref/jsref_escape.asp

Du coté PHP, ce sera urldecode(); (https://www.php.net/manual/fr/function.urldecode.php
0
kij_82 Messages postés 4089 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
24 janv. 2008 à 14:59
Merci pour ta réponse, j'ai trouvé depuis et effectivement c'est la fonction escape() coté javascript qu'il faut utiliser.
Coté PHP je n'ai finalement pas eu à inverser la conversion car j'enregistre dans une bdd directe, puis je reprends de cette bdd pour afficher dans un éditeur qui comprends le format "converti".
0