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 :

Action Javascript en fonction du boutton cliqué


Sujet :

JavaScript

  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2011
    Messages : 210
    Par défaut Action Javascript en fonction du boutton cliqué
    Bonjour,

    J'ai une page web sur laquelle j'ai 3 boutons. Le premier bouton a comme valeur 2 euros, le second 5 euros et le troisième 10 euros. J'ai un code javascript associe et je veux que le code réagissent en fonction du button que j'ai cliqué. Actuellement, il ne réagit qu'au premier bouton de 2 euros. Auriez-vous une idée de comment faire réagir le code javascript en fonction du bouton cliqué.
    Merci d'avance.

    Code HTML : 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
    <!DOCTYPE html>
    <html lang="en">
    <head>
    	<meta charset="UTF-8">
    	<title>Document</title>
    	<script src="https://code.jquery.com/jquery-3.4.1.min.js">
    	</script>
    </head>
    <body>
    	<button id="boutton" value="2">	
    		Envoyer 
    	</button>
    	<button id="boutton" value="5">	
    		Envoyer
    	</button>
    	<button id="boutton" value="10">	
    		Envoyer
    	</button>
    </body>
     
    <script type="text/javascript"> 
     
            const btn = document.querySelector('#boutton');
            const btVal = btn.value;
            
     
            bouton.addEventListener("click", function(){
                    $.ajax({
                    url:'test.php',
                    type: 'POST',
                    data: {amount: parseInt(btVal},
                            
     
                    success: function (json_data) {
                            window.location.replace(json_data);
                    },
                    error: function() {
                        console.log("data not found");
                    }
            });
            }); 
    </script>
     
    </html>

  2. #2
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 684
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 684
    Par défaut
    Salut,

    Déjà, tu aurais une id pour chaque bouton, ce serait un peu plus cohérent...

  3. #3
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 684
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 684
    Par défaut
    Imaginons une classe css "boutons"; tu récupères l'ensemble des éléments de la classe avec

    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    const mes_boutons=document.querySelectorAll(".boutons");

    Et puis tu lances le gestionnaire "click" pour chacun des éléments:

    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    const mes_boutons=document.querySelectorAll(".boutons");
    mes_boutons.forEach(b => {b.addEventListener("click", function(){
    	$.ajax({
    		url:'test.php',
    		type: 'POST',
    		data: {amount: this.value},
    		success: function (json_data) {
    			window.location.replace(json_data);
    		},
    		error: function() {
    			console.log("data not found");
    		}
    	});
    }); 
    })

    Quelque chose comme ça;

  4. #4
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2011
    Messages : 210
    Par défaut
    En fait, le code Javascript doit réagir uniquement en fonction du bouton que j'ai cliqué. En testant avec ton code, je n'ai pas de réaction de la part des boutons. Ce que je propose c'est de mettre un ID différent a chaque bouton. Par exemple, bouton1, bouton2 et bouton3. Que me suggérerais-tu dans ce cas ? Merci d'avance.

  5. #5
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 684
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 684
    Par défaut
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <button class="boutons" value="2">Envoyer</button>
    <button class="boutons" value="5">Envoyer</button>
    <button class="boutons" value="10">Envoyer</button>

  6. #6
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2011
    Messages : 210
    Par défaut
    Ça marche. Merci bcp Javatwister pour ton aide super précieuse. Cependant, j'ai une erreur au niveau de la ligne suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    mes_boutons.forEach(b => {b.addEventListener("click", function(){
    J'ai essayé avec le Array.from() comme ceci mais sans succes:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Array.from(mes_boutons).forEach(b => {b.addEventListener("click", function(){
    J'ai regardé dans la doc de forEach mais je ne vois rien. Aurais-tu une idée?
    Merci encore.

  7. #7
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 684
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 684
    Par défaut
    c'est parce que tu testes avec Explorer... auquel je n'ai pas pensé;

    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    for(let i = 0; i < mes_boutons.length; i++) {
    	mes_boutons[i].addEventListener("click", function(){
           // action
           })
    }

  8. #8
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2011
    Messages : 210
    Par défaut
    Bonjour JavaTwister,

    J'ai toujours une erreur sur IE au niveau de la ligne commençant par for.
    Ensuite sur chaque bouton, je veux insérer un code produit de telle sorte que lorsque je clique sur un bouton, en plus du montant en euros, il me prend en compte le code du produit. Aurais-tu une idée si possible.
    Un grand Merci à toi.

    Code HTML : 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
    <!DOCTYPE html>
    <html lang="en">
    <head>
    	<meta charset="UTF-8">
    	<title>Document</title>
    	<script src="https://code.jquery.com/jquery-3.4.1.min.js">
    	</script>
    </head>
    <body>
     
    <button class="boutons" value="2" CODE="CodeProduit1">Envoyer</button>
    <button class="boutons" value="5" CODE="CodeProduit2">Envoyer</button>
    <button class="boutons" value="10" CODE="CodeProduit3">Envoyer</button>
     
    </body>
     
    <script type="text/javascript">
     
    const mes_boutons=document.querySelectorAll(".boutons");
    for(let i = 0; i < mes_boutons.length; i++) {
            mes_boutons[i].addEventListener("click", function(){
            $.ajax({
                    url:'test.php',
                    type: 'POST',
                    data: {amount: this.value},
                    success: function (json_data) {
                            window.location.replace(json_data);
                    },
                    error: function() {
                            console.log("data not found");
                    }
            });
    }); 
    })
     
    </script>

  9. #9
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 124
    Par défaut
    Salut

    Il me semble bien que toutes les versions de Ie ne supporte pas le let, remplacer par un var.
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

  10. #10
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2011
    Messages : 210
    Par défaut
    Bonjour,

    J'ai tjrs une erreur. J'ai attaché la capture d'ecran.
    Merci.
    Nom : Capture.JPG
Affichages : 2165
Taille : 37,2 Ko

  11. #11
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 124
    Par défaut
    Que donne console.log("Valeur de mes_boutons",mes_boutons); que tu mes juste avant la ligne For?
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

  12. #12
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2011
    Messages : 210
    Par défaut
    Les boutons ne réagissent pas et je n'ai aucun message qui apparaît sur IE ou sur Chrome.

  13. #13
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 684
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 684
    Par défaut
    Parenthèse fermante en trop à la fin...

  14. #14
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2011
    Messages : 210
    Par défaut
    Parenthèse enlevée et plus d'erreurs affichées mais tjrs aucune réaction des boutons...

  15. #15
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 124
    Par défaut
    @ javatwister, en effet, j'ai corrigé pour essayer, voici le code
    Code HTML : 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
    <!DOCTYPE html>
    <html lang="en">
    <head>
    	<meta charset="UTF-8">
    	<title>Document</title>
    	<script src="https://code.jquery.com/jquery-3.4.1.min.js"></script>
    </head>
    <body>
     
    <button class="boutons" value="2" CODE="CodeProduit1">Envoyer</button>
    <button class="boutons" value="5" CODE="CodeProduit2">Envoyer</button>
    <button class="boutons" value="10" CODE="CodeProduit3">Envoyer</button>
     
     
    <script>
     
    const mes_boutons=document.querySelectorAll(".boutons");
    console.log("Valeur de mes_boutons",mes_boutons);
    for(let i = 0; i < mes_boutons.length; i++) {
            mes_boutons[i].addEventListener("click", function(){
            $.ajax({
                    url:'test.php',
                    type: 'POST',
                    data: {amount: this.value},
                    success: function (json_data) {
                            window.location.replace(json_data);
                    },
                    error: function() {
                            console.log("data not found");
                    }
            });
    });
    };
     
    </script>
    </body>
    </html>
    @lemzo84, Je n'ai pas d'erreur en console sous Ie mais data not found pour tout les butons cliqués.
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

  16. #16
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2011
    Messages : 210
    Par défaut
    @ProgElecT, çà marche. En fait les valeurs des boutons sont trop faibles et c'est pour cela que tu avais data not found. J'ai remplacé let par var et ça fonctionne sur IE et sur Chrome (enfin....). Il reste le fait d'associer le code produit de chaque bouton pour qu'en plus du montant, je puisse récupérer le code produit. Auriez-vous une idée?
    Voici le code:

    Code HTML : 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
    <!DOCTYPE html>
    <html lang="en">
    <head>
    	<meta charset="UTF-8">
    	<title>Document</title>
    	<script src="https://code.jquery.com/jquery-3.4.1.min.js"></script>
    </head>
    <body>
     
    <button class="boutons" value="2000" id ="CodeProduit1" >Envoyer</button>
    <button class="boutons" value="5000" id ="CodeProduit2">Envoyer</button>
    <button class="boutons" value="10000" id ="CodeProduit3">Envoyer</button>
     
     
    <script>
     
    const mes_boutons=document.querySelectorAll(".boutons");
    console.log("Valeur de mes_boutons",mes_boutons);
     
    for(var i = 0; i < mes_boutons.length; i++) {
            mes_boutons[i].addEventListener("click", function(){
            $.ajax({
                    url:'test.php',
                    type: 'POST',
                    data: {amount: this.value},
                    success: function (json_data) {
                            window.location.replace(json_data);
                    },
                    error: function() {
                            console.log("data not found");
                    }
            });
    });
    };
     
    </script>
    </body>
    </html>

  17. #17
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2011
    Messages : 210
    Par défaut
    Pour récupérer le code du produit, voila ce que j'ai essayer mais ça ne marche pas (ça ne récupère que le montant). Auriez-vous une idée ?
    Merci encore.

    Code HTML : 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
    <!DOCTYPE html>
    <html lang="en">
    <head>
    	<meta charset="UTF-8">
    	<title>Document</title>
    	<script src="https://code.jquery.com/jquery-3.4.1.min.js"></script>
    </head>
    <body>
     
    <button class="boutons" value="2000" id="CodeProduit1" >Envoyer</button>
    <button class="boutons" value="5000" id="CodeProduit2">Envoyer</button>
    <button class="boutons" value="10000" id="CodeProduit3">Envoyer</button>
     
     
    <script>
    const mes_boutons=document.querySelectorAll(".boutons");
    console.log("Valeur de mes_boutons",mes_boutons);
    const product = document.querySelectorAll(".id");
    const productID = product.innerHTML;
     
    for(var i = 0; i < mes_boutons.length; i++) {
            mes_boutons[i].addEventListener("click", function(){
            $.ajax({
                    url:'test.php',
                    type: 'POST',
                    data: {amount: this.value, productId: productID,},
                    success: function (json_data) {
                            window.location.replace(json_data);
                    },
                    error: function() {
                            console.log("data not found");
                    }
            });
    });
    };
     
    </script>
    </body>
    </html>

  18. #18
    Membre Expert
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    2 909
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2 909
    Par défaut
    Salut,
    Citation Envoyé par lemzo84 Voir le message
    Pour récupérer le code du produit, voila ce que j'ai essayer mais ça ne marche pas (ça ne récupère que le montant). Auriez-vous une idee ?
    Tu peux supprimer les lignes 18 et 19 et à la ligne 26 remplace productID par this.id...

  19. #19
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 684
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 684
    Par défaut
    et pendant que tu y es, élimines ces 2 lignes comiques:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    const product = document.querySelectorAll(".id");
    const productID = product.innerHTML;

  20. #20
    Membre Expert
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    2 909
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2 909
    Par défaut
    Salut,

    Citation Envoyé par javatwister Voir le message
    et pendant que tu y es, élimines ces 2 lignes comiques:
    Oui c'est de ces lignes (18 & 19) dont je parlais...

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

Discussions similaires

  1. Liens html pour un éditeur (ajouter une action javascript à un lien html)
    Par psychoBob dans le forum Général JavaScript
    Réponses: 17
    Dernier message: 25/05/2006, 18h41
  2. Javascript : probleme fonction replace
    Par chico_du_33 dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 06/03/2006, 14h11
  3. [Javascript] execution fonction php
    Par marion782 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 01/02/2006, 22h58
  4. onChange pas déclanché sur une action javascript ?
    Par Oluha dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 27/06/2005, 16h32

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