IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Concatenation des chaines contenant le caractère +


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 102
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  2. #2
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    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 !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 102
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  4. #4
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 102
    Par défaut
    Merci beaucoup

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. trier des chaines contenant des chiffres
    Par Jerome38190 dans le forum Langage
    Réponses: 3
    Dernier message: 30/04/2010, 09h50
  2. Manipulation des chaines : supprimer certains caractères
    Par pierrepo dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 18/11/2009, 21h25
  3. concatenation des chaines
    Par nomane64 dans le forum Débuter
    Réponses: 13
    Dernier message: 21/01/2008, 16h02
  4. [SQL] : Concatener des chaines de caractères
    Par basto dans le forum VBA Access
    Réponses: 2
    Dernier message: 30/04/2007, 16h47
  5. [C++.net]Concatener des chaines de caractère
    Par Dlyan dans le forum MFC
    Réponses: 3
    Dernier message: 27/03/2006, 15h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo