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 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
 
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 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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à.