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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  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.

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

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