Rechercher : dans
Par :

[javascript] parametre POST avec '&' ds texte

Dernière réponse le 24 jan 2008 à 14:59:49 kij_82, le 24 jan 2008 à 14:16:34 
 Signaler ce message aux modérateurs

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à.
~ N'oubliez pas la balise "Résolu" lorsque votre problème est... résolu :) ~
Configuration: Windows XP
Firefox 2.0.0.11

Meilleures réponses pour « [javascript] parametre POST avec '&' ds texte » dans :
Javascript - Les événements VoirQu'appelle-t-on un événement? Les événements sont des actions de l'utilisateur, qui vont pouvoir donner lieu à une interactivité. L'événement par excellence est le clic de souris, car c'est le seul que le HTML gère. Grâce au Javascript il est...
Javascript - Les fonctions VoirLa notion de fonction On appelle fonction un sous-programme qui permet d'effectuer un ensemble d'instructions par simple appel de la fonction dans le corps du programme principal. Cette notion de sous-programme est généralement appelée fonction...
Javascript - L'objet window VoirLes particularités de l'objet window L'objet window est l'objet par excellence dans Javascript, car il est le parent de chaque objet qui compose la page web, il contient donc : l'objet document: la page en elle-même l'objet location: le lieu de...

1

Xil, le 24 jan 2008 à 14:43:17

La fonction javascript escape() permet de faire ceci. (http://www.w3schools.com/jsref/jsref_escape.asp)

Du coté PHP, ce sera urldecode(); (http://be2.php.net/manual/fr/function.urldecode.php)

Répondre à Xil

2

 kij_82, le 24 jan 2008 à 14:59:49

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

~ N'oubliez pas la balise "Résolu" lorsque votre problème est... résolu :) ~

Répondre à kij_82