[javascript] parametre POST avec '&' ds texte

Résolu
kij_82 Messages postés 4089 Date d'inscription   Statut Contributeur Dernière intervention   -  
kij_82 Messages postés 4089 Date d'inscription   Statut Contributeur Dernière intervention   -
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   Statut Membre Dernière intervention   257
 
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   Statut Contributeur Dernière intervention   857
 
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