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 :

somme de deux boutons radio sélectionnes (boutons radio avec plusieurs valeurs)


Sujet :

JavaScript

  1. #1
    Membre habitué Avatar de zemzoum89
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2010
    Messages
    373
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2010
    Messages : 373
    Points : 131
    Points
    131
    Par défaut somme de deux boutons radio sélectionnes (boutons radio avec plusieurs valeurs)
    Bonjour,

    Voila j'ai un petit problème j'ai des boutons radios de deux familles (name) différentes et je voudrais avoir la somme des deux deux sélectionnés pour calculer le prix total des choix d'un client dans la même page

    On ma aidé dans le forum php et on ma dit que je pourrais utiliser plusieur valeur dans un attribut par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="radio" name="type" value="Personne|voiture" />
    et utiliser la fonction js "split" pour récupérer les différentes valeurs de value mais je sais pas comment faire tout cela

    comment je pourrais faire??? aidez moi avec un petit exemple SVP... merci beaucoup d'avance....

  2. #2
    Expert éminent sénior

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Points : 79 912
    Points
    79 912
    Par défaut
    Bonjour,

    Vous pouvez adapter ces exemples de la FAQ:

    - Récuperer la valeur d'un input.
    - Vérifier si une case est cochée. Le principe reste le même pour les boutons radios.

    Quant à la méthode split, elle renvoi un tableau avec les valeurs comprises entre les occurences du caractère cible:

    Code js : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    var mon_tableau = "un!deux!trois".split("!");
    alert(mon_tableau[0]); //un
    alert(mon_tableau[1]); //deux
    alert(mon_tableau[2]); //trois

  3. #3
    Membre habitué Avatar de zemzoum89
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2010
    Messages
    373
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2010
    Messages : 373
    Points : 131
    Points
    131
    Par défaut
    Bonjour,

    En premier lieu je vous remercie de m'aider...

    Le problème que j'ai moi dans ce cas la c'est que tout mes boutons radio ont le meme id pourquoi? parce qu'ils sont générés de façon dynamique dans une boucle:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    while($donnee=
    mysql_fetch_array($requete))
    et donc voici ma fonction qui marche tres bien sauf quand on change de bouton

    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
     
    function calprix()
    	{
     
    var prixadul = document.getElementById('prixadu');
    var elem1 = prixadu.value.split('|');
    Prixadulte = elem1[1];
     
    var prixenf = document.getElementById('prixenf');
    var elem2 = prixenf.value.split('|');
    Prixenfant = elem2[1];
     
    var prixtotal= eval(Prixadulte) + eval(Prixenfant);
         document.getElementById('champprix').value=prixtotal;
     
    	 }
    je l'appelle avec onclick="calprix();" quand on coche les deux premier bouton elle amrche mais apres non la premiere valeur reste affichée et elle ne change pas et le probleme je crois qu'il vient des ID qui sont pareils et comment régler cela svp

  4. #4
    Expert éminent sénior

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Points : 79 912
    Points
    79 912
    Par défaut
    Effectivement ce n'est pas bien du tout d'avoir deux fois le même id dans le même formulaire. Le name peut l'être mais pas l'id.

    Dans la boucle, arrangez-vous pour avoir un id de type:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    id="mon_id_" + compteur
    où compteur est incrémenté à chaque passage dans la boucle. Le + étant le symbole de concaténation, à modifier selon le langage utilisé.

  5. #5
    Membre habitué Avatar de zemzoum89
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2010
    Messages
    373
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2010
    Messages : 373
    Points : 131
    Points
    131
    Par défaut
    et quand je fais un compteur comment je fais pour gérer le:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    document.getElementById('prixadu');
    car 'prixadu' change selon le compteur ???

    Je m'excuse pour ces questions be... car je suis nouveau en js, en d'autre terme comment dire a js que mon id va changer d'un appel a un autre ???

  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 634
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 634
    Points : 66 650
    Points
    66 650
    Billets dans le blog
    1
    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 habitué Avatar de zemzoum89
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2010
    Messages
    373
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2010
    Messages : 373
    Points : 131
    Points
    131
    Par défaut
    Franchement la vous m'avez rendu la situation beaucoup plus difficile, il n'y a pas un moyen plus simple que ca, je suis très nouveau en js et je dois vraiment faire cela pour un projet que j'ai...
    Merci d'avoir essayé...

  8. #8
    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 634
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 634
    Points : 66 650
    Points
    66 650
    Billets dans le blog
    1
    Par défaut
    un id devant être unique sur une page ...
    tu peux passer par les classes ou boucler pour faire un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElemetnById('truc'+increment)
    Personne n'a jamais dit que javascript était simple
    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 !

  9. #9
    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 634
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 634
    Points : 66 650
    Points
    66 650
    Billets dans le blog
    1
    Par défaut
    sinon juste boucler sur chacune des collection getElementsByName et recupérer le checked et le splitter ...
    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 !

  10. #10
    Membre habitué Avatar de zemzoum89
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2010
    Messages
    373
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2010
    Messages : 373
    Points : 131
    Points
    131
    Par défaut
    maintenant j'ai fais deux fonction de la manière 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
    28
    function calprixallerr(i)
    	{
     if (document.getElementById('volaller'+i))
    {
    var volaller = document.getElementById('volaller'+i);
    var elem1 = volaller.value.split('|');
    PrixAller = elem1[1];
    }
    else
    PrixAller=0;
     
    return PrixAller;
     }
     
     
    function calprixretour(j)
    	{
    if (document.getElementById('volretour'+j))
    {
    var volretour = document.getElementById('volretour'+j);
    var elem2 = volretour.value.split('|');
    PrixRetour = elem2[1];
    }
    else
    PrixRetour=0;
     
    return PrixRetour;
     }
    et j'ai un champ texte qui affiche l'addition de l'aller et du retour comme suit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     function calprixtotal()
    	  {
    	 prixtotal= eval(calprixallerr()) + eval(calprixretour());
         document.getElementById('champprix').value=prixtotal;
    	  }

    Comment appeler cette fonction pour que le prix affiché soit toujours a jour... Merci beauoup beaucoup pour votre aide....

  11. #11
    Membre habitué Avatar de zemzoum89
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2010
    Messages
    373
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2010
    Messages : 373
    Points : 131
    Points
    131
    Par défaut
    Solution trouvée

    fallait juste déclarer les variables
    PrixAller et PrixRetour en dehors des fonctions et les appeller elles dans la fonction prix total...

    Merci beaucoup a tous ceux qui ont essayé ou voulu m'aider merci beaucoup...

  12. #12
    Membre habitué Avatar de zemzoum89
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2010
    Messages
    373
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2010
    Messages : 373
    Points : 131
    Points
    131
    Par défaut
    Bonsoir,
    désolé encore une fois pour le dérangement (Je suis dans le cadre d'un projet de fin d'étude)...

    Je suis tombé dans le meme problème mais cette fois ça diffère un peu car la j'ai plusieurs type de chambres par exemple chambre: suite, standard et chacune d'elle à un prix et tout ceci est générer dynamiquement avec des boutons radio et php et la base de données et voici la fonction que j'ai utiliser pour avoir le prix total des chambres mais elle ne marche pas du tout... Veuillez m'aider svp...

    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    var  prixchambre1= 0;
    		var  prixchambre2= 0;
    		var  prixchambre3= 0; 
    		var  prixchambre4= 0;
     
    	 function calprixchambre(i)
    	{
     if (document.getElementById('dpchambre'+i))
    {
      if (document.getElementById('dpchambre'+i).checked)
         {
    		var dpchambre+i = document.getElementById('dpchambre'+i);
    		var elem1 = dpchambre+i.value.split('|');
    		prixchambre+i = elem1[1];
         }
     
    }
    else
      {
    		if (document.getElementById('pcchambre'+i))
    			{
    			if (document.getElementById('pcchambre'+i).checked)
    				{
    					var pcchambre+i = document.getElementById('pcchambre'+i);
    					var elem1 = pcchambre+i.value.split('|');
    					prixchambre+i = elem1[1];
    				}
     
    			}
    		else
    			{
     
    			if (document.getElementById('aichambre'+i))
    			{
    			if (document.getElementById('aichambre'+i).checked)
    				{
    					var aichambre+i = document.getElementById('aichambre'+i);
    					var elem1 = aichambre+i.value.split('|');
    					prixchambre+i = elem1[1];
    				}
     
    			}
     
    			}	
     
      }
     
     
     
     }
     
     
     
    	 function calprixtotal()
    	  {
    	 prixtotal= eval(prixchambre1) + eval(prixchambre2) + eval(prixchambre3) + eval(prixchambre4) ;
         document.getElementById('champprix').value=prixtotal;
    	  }
    Je crois que le problème viens des différents types de chambre qui ont le meme id comment régler cela svp???

  13. #13
    Expert éminent sénior

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Points : 79 912
    Points
    79 912
    Par défaut
    Vous ne pouvez pas avoir de "+" dans vos noms de variables:

    Essayez "_".

  14. #14
    Membre habitué Avatar de zemzoum89
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2010
    Messages
    373
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2010
    Messages : 373
    Points : 131
    Points
    131
    Par défaut
    Et dans ce cas la comment concaténer?? les variables avec le i (de la chambre conernée) ??...

    Merci beaucoup pour votre aide...

    ps: Le problème a part la concaténation ne pourrais pas venir des id qui sont pareils ???

  15. #15
    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 634
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 634
    Points : 66 650
    Points
    66 650
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElemntById('chambre_'+i)
    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 !

  16. #16
    Membre habitué Avatar de zemzoum89
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2010
    Messages
    373
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2010
    Messages : 373
    Points : 131
    Points
    131
    Par défaut
    Mais la c'est la meme chose que ce que j'ai fait sauf que vous avez rajouté le underscore... lool

  17. #17
    Expert éminent sénior

    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
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par zemzoum89 Voir le message
    Mais la c'est la meme chose que ce que j'ai fait sauf que vous avez rajouté le underscore... lool
    Non, pas du tout : dans ton cas c'était une déclaration de variable (pas bon), mais pour SpaceFrog c'est une concaténation de caractères (bon)

    A+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  18. #18
    Expert éminent sénior

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Points : 79 912
    Points
    79 912
    Par défaut
    Ce qu'il y a c'est que zemzoum souhaite passer par une variable:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    var dpchambre+i = document.getElementById('dpchambre'+i);
    var elem1 = dpchambre+i.value.split('|');
    En rouge, l'erreur; en vert la concaténation.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    var dpchambre_i = document.getElementById('dpchambre'+i);
    var elem1 = dpchambre_i.value.split('|');
    Mais c'est inutil, ceci suffit:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var elem1 = document.getElementById('dpchambre'+i).value.split('|');

  19. #19
    Membre habitué Avatar de zemzoum89
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2010
    Messages
    373
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2010
    Messages : 373
    Points : 131
    Points
    131
    Par défaut
    mais est ce que ce qu'a donné SpaceFrog me donnera chambre1 ????ou chambre_1??? Merci bcp pour votre aide....

    en d'autre terme dans ce code la est ce que prixchambre_i va renvoyer la variable prixchambre1 si i est égale a 1 ??

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    var pcchambre_i = document.getElementById('pcchambre'+i);
    					var elem1 = pcchambre_i.value.split('|');
    					prixchambre_i = elem1[1];

  20. #20
    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 634
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 634
    Points : 66 650
    Points
    66 650
    Billets dans le blog
    1
    Par défaut
    ha bon ???
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var elem1 = dpchambre+i.value.split('|');
    on n'a pas la même notion de ce que veut dire "la même chose"
    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 !

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

Discussions similaires

  1. [XL-2010] Sélectionner et copier avec plusieurs critères dans une listeview multi colonnes.
    Par polysandre dans le forum Macros et VBA Excel
    Réponses: 17
    Dernier message: 21/11/2014, 11h02
  2. Réponses: 2
    Dernier message: 16/11/2014, 23h48
  3. Splitter deux fois et exécuter un script avec les valeurs
    Par Sarolion11 dans le forum VBScript
    Réponses: 3
    Dernier message: 31/05/2013, 12h13
  4. [PEAR][HTML_QuickForm] Bouton radio sélectionné par défaut
    Par JuTs dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 03/06/2010, 11h10

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