Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript
JavaScript Forum programmation JavaScript. Lire : Cours JavaScript, FAQ JavaScript, Toutes les FAQ JavaScript et Sources JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 27/04/2011, 11h17   #1
Futur Membre du Club
 
Inscription : juin 2006
Messages : 100
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 100
Points : 17
Points : 17
Par défaut Concatenation des chaines contenant le caractère +

Bonjour,
Je souhaite ouvrir un popup en passant à mon URL une variabel. La valeur de cette variable contient le caractère '+' . Mon problème est que js considère le + comme opérateur de concaténation alors que je souhaite transmettre la chaine telle qu'elle est à ma popup. Pour que ça soit claire je donne un exemple.
voici ma fonction :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
function ouvrirQuery() {
 
		if (document.requeteForm.critereChaine.value != '') {
		    	urlPopup = redirect('/display.do?method=open&chaine='+document.requeteForm.critereChaine.value);
	    } else {
	    	urlPopup = redirect('/display.do?method=save');
	    }
	    document.requeteForm.action =  redirect("/display.do");
	  	openPopup(urlPopup);
 
		}
	}
et
Code :
document.requeteForm.critereChaine.value = "3+;4++;7+"
Au lieu que la popup reçoit la chaine "3;4++;7+" elle reçoit "3 ;4 ;7 "
Pourriez vous m'aider à resoudre ça en protégeant le caractère '+' pour qu'il soit transmis à la popup tel qu'il est

Merci d'avane
ammah est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/04/2011, 11h25   #2
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 13 806
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 41
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2008
Messages : 13 806
Points : 35 803
Points : 35 803
Citation:
Mon problème est que js considère le + comme opérateur de concaténation
Non, le problème c'est que dans une URL, "+" correspond à un espace.
Pour y remédier, il faut utilser encodeURIComponent().
__________________
Pas de question technique par MP !
Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi !
Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
Mon livre sur jQuery
Bovino est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/04/2011, 13h52   #3
Futur Membre du Club
 
Inscription : juin 2006
Messages : 100
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 100
Points : 17
Points : 17
Merci pour votre réponse.
Pourriez vous m'eclaircir un peu plus car j'ai essayé d'utiliser la fonction mais ça n'a pas marché.

J'ai fait les deux essaies suivants :

1 - ---------------
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
function ouvrirQuery() {
 
		if (document.requeteForm.critereChaine.value != '') {
				var uri = '/display.do?method=open&chaine='+document.requeteForm.critereChaine.value;
				urlPopup = redirect(encodeURIComponent(uri));
	    } else {
	    	urlPopup = redirect('/display.do?method=save');
	    }
	    document.requeteForm.action =  redirect("/display.do");
	  	openPopup(urlPopup);
 
		}
	}
2 ----------
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
	function ouvrirQuery() {
 
		if (document.requeteForm.critereChaine.value != '') {
				var uriPopup = '/display.do?method=open&chaine='+document.requeteForm.critereChaine.value;
				urlPopup = redirect(uriPopup);
	    } else {
	    	urlPopup = redirect('/display.do?method=save');
	    }
	    document.requeteForm.action =  redirect("/display.do");
	  	openPopup(encodeURIComponent(urlPopup));
 
		}
	}
Merci d'avance
ammah est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/04/2011, 13h56   #4
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 13 806
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 41
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2008
Messages : 13 806
Points : 35 803
Points : 35 803
Code :
var uri = '/display.do?method=open&chaine='+encodeURIComponent(document.requeteForm.critereChaine.value);
__________________
Pas de question technique par MP !
Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi !
Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
Mon livre sur jQuery
Bovino est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/04/2011, 14h07   #5
Futur Membre du Club
 
Inscription : juin 2006
Messages : 100
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 100
Points : 17
Points : 17
Merci beaucoup
ammah est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h09.


 
 
 
 
Partenaires

Hébergement Web