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 :

Concaténation de chaines?


Sujet :

JavaScript

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    389
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2009
    Messages : 389
    Par défaut Concaténation de chaines?

    J'ai un petit problème : comment bien faire la concaténation en javascript? J'ai cherché dans quelques tutos, mais je n'ai pas trouvé de bonne réponse...

    Je vous montre ce que je veux faire :
    on a ça :
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    url = url + "&calleeNumber=0101010101";

    maintenant, je veux pouvoir remplacer le numéro 0101010101 par une variable, qui contient n'importe quel numéro envoyé à la fonction.

    J'ai essayé
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    url = url + "&calleeNumber="+tel;

    mais ça ne marche pas... Pourtant, la concaténation en javascript, ça se fait bien avec + non?

    Comment faire?

  2. #2
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Bonjour,
    Citation Envoyé par floctc Voir le message
    mais ça ne marche pas...
    un peu léger comme diagnostique, non ?

    La syntaxe est correcte. Si tu nous donnes le code avec les valeurs de variables et le résultat, on pourra peut être en déduire d'où vient ton problème.

    D'ailleurs, en nous donnant ces éléments, tu trouveras sûrement tout seul

    A+

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    389
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2009
    Messages : 389
    Par défaut
    Oui, je sais que c'est un peu léger! Mais le problème, c'est que je ne peux pas voir les variables! En fait, la fonction javascript génère un pop-up qui ne s'exécute pas, du coup je ne peux pas faire de print des variables et voir le résultat...

    Je vous poste la fonction (elle permet d'appeler quelqu'un avec un téléphone directement depuis une application web) :

    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    function callCV(tel) {
    	var urlCV = "http://server.jsp?";
    	urlCV = urlV + "&calleeID=";
    	urlCV = urlClicVoice + "&calleeSID=";
    	urlCV = urlClicVoice + "&lastName=Dupont";
    	urlCV = urlClicVoice + "&firstName=Dupond";
    	urlCV = urlClicVoice + "&calleeNumber="+tel;
    	urlCV = urlClicVoice + "&rootService=SONDAGE";
    	fenVoxnet = window.open(urlCV, '_blank', 'width=470,height=260');
    }

    et l'appel de la fonction, qui se fait en php :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    echo "<a href=\"javascript:callCV($tel)\">Appeler</a> <br />";

    Merci de votre aide

  4. #4
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Elle est bien pratique, des fois, la fonction alert()
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    function callCV(tel) {
    	var urlCV = "http://server.jsp?";
    	urlCV = urlV + "&calleeID=";
    	urlCV = urlClicVoice + "&calleeSID=";
    	urlCV = urlClicVoice + "&lastName=Dupont";
    	urlCV = urlClicVoice + "&firstName=Dupond";
    	urlCV = urlClicVoice + "&calleeNumber="+tel;
    	urlCV = urlClicVoice + "&rootService=SONDAGE";
    alert(urlCV);
    //	fenVoxnet = window.open(urlCV, '_blank', 'width=470,height=260');
    }
    EDIT : heu ... tu relis tes codes ?

    A+

  5. #5
    Membre Expert
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    1 132
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 132
    Par défaut
    Citation Envoyé par floctc Voir le message
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    function callCV(tel) {
    	var urlCV = "http://server.jsp?";
    	urlCV = urlV + "&calleeID=";
    	urlCV = urlClicVoice + "&calleeSID=";
    	urlCV = urlClicVoice + "&lastName=Dupont";
    	urlCV = urlClicVoice + "&firstName=Dupond";
    	urlCV = urlClicVoice + "&calleeNumber="+tel;
    	urlCV = urlClicVoice + "&rootService=SONDAGE";
    	fenVoxnet = window.open(urlCV, '_blank', 'width=470,height=260');
    }
    En fait c'est par ce qu'il faut faire un choix quand au nom de ta variable

    Vas-tu l'appeler :
    urlV,
    urlCV ou
    urlClicVoice ?

  6. #6
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 658
    Billets dans le blog
    1
    Par défaut
    sinon y'a aussi en js
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    389
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2009
    Messages : 389
    Par défaut
    Oula, je viens de relire, en fait j'ai renommé les variables de la fonction pour que ca soit + clair, mais j'ai tapé trop à la va-vite, je recommence :
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    function callCV(tel) {
    	var urlCV = "http://server.jsp?";
    	urlCV = urlCV + "&calleeID=";
    	urlCV = urlCV + "&calleeSID=";
    	urlCV = urlCV + "&lastName=Dupont";
    	urlCV = urlCV + "&firstName=Dupond";
    	urlCV = urlCV + "&calleeNumber="+tel;
    	urlCV = urlCV + "&rootService=SONDAGE";
    	fenVoxnet = window.open(urlCV, '_blank', 'width=470,height=260');
    }

    Ce que je veux, c'est que urlCV contienne tout ce que je mets à la suite, plus le numéro de téléphone envoyé à partir de l'appli php

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    echo "<a href=\"javascript:callCV($tel)\">Appeler</a> <br />";

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    389
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2009
    Messages : 389
    Par défaut
    Citation Envoyé par E.Bzz Voir le message
    Elle est bien pratique, des fois, la fonction alert()
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    function callCV(tel) {
    	var urlCV = "http://server.jsp?";
    	urlCV = urlV + "&calleeID=";
    	urlCV = urlClicVoice + "&calleeSID=";
    	urlCV = urlClicVoice + "&lastName=Dupont";
    	urlCV = urlClicVoice + "&firstName=Dupond";
    	urlCV = urlClicVoice + "&calleeNumber="+tel;
    	urlCV = urlClicVoice + "&rootService=SONDAGE";
    alert(urlCV);
    //	fenVoxnet = window.open(urlCV, '_blank', 'width=470,height=260');
    }
    EDIT : heu ... tu relis tes codes ?

    A+
    Oui je relis mes codes ! C'est juste que là, j'ai recopié à la va vite pour changer les noms de variables...

    Par contre, même en faisant alert(), rien ne se passe quand je clique sur le lien.

    Je vois vraiment pas ou est l'erreur

    Avez vous une idée?

  9. #9
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Citation Envoyé par floctc Voir le message
    Par contre, même en faisant alert(), rien ne se passe quand je clique sur le lien.
    C'est que ton JS est planté.

    On peut voir le code généré du lien ?

    A+

  10. #10
    Membre Expert
    Avatar de RomainVALERI
    Homme Profil pro
    POOête
    Inscrit en
    Avril 2008
    Messages
    2 652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : POOête

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Par défaut
    1)
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    urlCV = urlCV + "&calleeID=";
    tu concatènes "&calleeID=" directement après le "=", il y a donc un "&" en trop...

    2) effectivement comme suggère SpaceFrog, ça serait quand même moins verbeux avec des "+=", genre :
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    function callCV(tel) {
    	var urlCV = "http://server.jsp";
    	urlCV += "?calleeID=";
    	urlCV += "&calleeSID=";
    	urlCV += "&lastName=Dupont";
    	urlCV += "&firstName=Dupond";
    	urlCV += "&calleeNumber="+tel;
    	urlCV += "&rootService=SONDAGE";
    	fenVoxnet = window.open(urlCV, '_blank', 'width=470,height=260');
    }

    3) Bon, alors, qu'est-ce qu'il donne, cet alert(urlCV) juste avant le window.open ?

  11. #11
    Membre expérimenté
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    162
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 162
    Par défaut
    Le problème vient de l'appel de ta fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "<a href=\"javascript:callCV($tel)\">Appeler</a> <br />";
    le code généré doit être le suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "<a href=\"javascript:callCV(monNumeroDeTelephone)\">Appeler</a> <br />";
    monNumeroDeTelephone étant la valeur de ta variable $tel. Tu dois entourer le contenu de cette variable avec des quotes pour que javascript puisse l'interprêter comme une chaine de caractères... Avec ton code, javascript cherche une variable s'appellant monNumeroDeTelephone, qui n'existe visiblement pas...

  12. #12
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Citation Envoyé par BaBeuH Voir le message
    Avec ton code, javascript cherche une variable s'appellant monNumeroDeTelephone, qui n'existe visiblement pas...


    C'est bien là où je voulais en venir

    A+

  13. #13
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    389
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2009
    Messages : 389
    Par défaut
    Citation Envoyé par BaBeuH Voir le message
    Le problème vient de l'appel de ta fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "<a href=\"javascript:callCV($tel)\">Appeler</a> <br />";
    le code généré doit être le suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "<a href=\"javascript:callCV(monNumeroDeTelephone)\">Appeler</a> <br />";
    monNumeroDeTelephone étant la valeur de ta variable $tel. Tu dois entourer le contenu de cette variable avec des quotes pour que javascript puisse l'interprêter comme une chaine de caractères... Avec ton code, javascript cherche une variable s'appellant monNumeroDeTelephone, qui n'existe visiblement pas...
    Lorsque je fais
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    echo "<a href=\"javascript:callClicVoice0001($tel)\">Appeler</a>";
    comme je suis dans un echo, $tel est remplacé par sa valeur, donc 0101010101.

    J'ai essayé en le faisant simplement en html :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <a href="javascript:callClicVoice0001(<?php echo "$tel" ;?>)">Appeler</a>
    mais ça ne fonctionne pas non plus, pourtant je vois bien que la fonction passe 0101010101 en paramètre, puisque au survol du lien, j'ai en bas à gauche sur le navigateur
    javascript:callCV(0101010101)
    Je me serai encore trompé? pourtant, ça fait au moins 15 fois que je relis

    Vraiment là, je sèche...
    Merci d'essayer de m'aider en tous cas!

  14. #14
    Membre expérimenté
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    162
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 162
    Par défaut
    Essaye ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="javascript:callClicVoice0001('<?php echo $tel;?>')">Appeler</a>

  15. #15
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Toujours pas de code généré

    C'est pas difficile un copié/collé ...

    Tu as une variable qui s'appelle 0101010101 ?
    Citation Envoyé par BaBeuH Voir le message
    Tu dois entourer le contenu de cette variable avec des quotes pour que javascript puisse l'interprêter comme une chaine de caractères...
    A+

  16. #16
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    389
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2009
    Messages : 389
    Par défaut
    0101010101 est le contenu de la variable $tel.
    Je me demande d'où vient le problème, car je sais quand même envoyer des paramètres à une fonction! Là, le lien ne s'ouvre même pas!

    Je vais contacter la personne qui a fait cette fonction, peut-être qu'elle pourra m'expliquer la raison, car là vraiment j'ai tout essayé.

    Merci de votre aide.

  17. #17
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Citation Envoyé par floctc Voir le message
    Je vais contacter la personne qui a fait cette fonction, peut-être qu'elle pourra m'expliquer la raison,
    Super bonne idée !!

    Et tu nous dira comment elle est arrivé à te le faire comprendre, elle
    (ci-dessus on te l'a dit 5 fois sans succès)

    A+

  18. #18
    Membre expérimenté
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    162
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 162
    Par défaut
    La répétition étant la base de la pédagogie, allons-y

    javascript:callCV(0101010101)
    C'est bien là le problème ! comme on a essayé de te le dire, javascript essaie de trouver la variable s'appelant 0101010101, en vain...

    si tu utilises le code suivant dans ta page coté serveur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="javascript:callClicVoice0001('<?php echo $tel;?>')">Appeler</a>
    Tu auras ensuite comme code généré :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    javascript:callClicVoice0001('0101010101')
    Et cette fois javascript pourra interprêter ton paramètre comme une chaine de caractère et concaténer correctement tes infos !

    A+

    EDIT : Avec tous tes tests, refais une passe sur le nom de tes variables et de tes fonctions pour vérifier si tu n'as pas encore des noms de variables ou méthodes différents...

  19. #19
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Citation Envoyé par BaBeuH Voir le message
    La répétition étant la base de la pédagogie, allons-y

  20. #20
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    389
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2009
    Messages : 389
    Par défaut
    Bon, en fait, le problème était totalement différent. J'avais compris que je m'étais trompé au départ et que j'envoyai la variable 0101010101 à javascript, qui ne la trouvai pas. Mais même en changeant:
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="javascript:callClicVoice0001('<?php echo $tel;?>')">Appeler</a>
    ca ne fonctionnait pas non plus.

    Le problème venait du fait que je convertissait le numéro de téléphone envoyé au format internationnal (%2B33xxxxxxxxx) avec php, mais comme le fenVoxnet retraitait derrière lui aussi le numéro, ça posait problème...

    Et effectivement, maintenant ça marche (évidemment, en faisant
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="javascript:callClicVoice0001('<?php echo $tel;?>')">Appeler</a>
    )

    Merci à tous pour votre aide

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Concaténer une chaine et un nombre pour former un nom de variable ?
    Par debie1108 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 30/04/2007, 07h38
  2. Comment concaténer une chaine de caractères avec un espace ?
    Par blanchonvincent dans le forum MATLAB
    Réponses: 6
    Dernier message: 07/04/2007, 21h53
  3. Réponses: 2
    Dernier message: 02/04/2007, 11h07
  4. Réponses: 1
    Dernier message: 25/04/2006, 16h06
  5. Concaténéation de chaine dans un group by
    Par Delphi-ne dans le forum Requêtes
    Réponses: 4
    Dernier message: 28/01/2006, 00h11

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