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 :

Récupérer INDEX d'un getElementsByTagName


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    35
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 35
    Par défaut Récupérer INDEX d'un getElementsByTagName
    Bonjour à tous,

    J'ai sur une page plusieurs boutons, chacun correspondant à un "article". Quand je clique sur un bouton (générés dynamiquement grâce à une boucle) ça m'ajoute l'article dans la base. Aucun problème ça fonctionne grâce à ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    var btns = document.getElementsByTagName("input"); 
     
    for(var i = 0 ; i<btns.length ; i++) // pour que tous les boutons soient clicquables
    			{
    				if(btns[i].id == "btnAddPanier" ) //on vérifie bien que le bouton cliqué est celui correspondant à un ajout au panier 
    				{
     
    								btns[i].onclick = AddPanier;
    				}
    			}
    Je voudrais maintenant (pour autre des radio button), récupérer le "i" que j'ai cliqué... (Par exemple, je peux récupérer le nom du bouton, en faisant

    y'a t'il une solution pour récupérer l'index du bouton ?? (en gros le i dans la boucle)... si je mets une variable "test" dans la boucle, elle prendra automatiquement la dernière valeur de la boucle.
    J'ai essayé à tout hasard.... mais ne fonctionne pas... et google ne me trouve pas de problèmes similaires.

    Merci d'avance pour vos propositions

    Cordialement,

    MoKeS

  2. #2
    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
    tu peux nous montrer la boucle sure les radios ...
    tu veux recupérer quel i ? il y a un test dans la boucle ?
    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 !

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    35
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 35
    Par défaut
    Bonsoir,

    Justement, j'ai tenté de faire une boucle sur les radios...mais ça me choisis automatiquement celle qui est à l'index inputs[inputs.length]...

    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
     
    var btnAddPanier = document.getElementById("btnAddPanier");
    var btns = document.getElementsByTagName("input"); // on récupère tous les inputs de la page dans l'ordre suivant ( radio, radio, button, radio radio, button, etc.)
     
    function addPanier()
    {
       var qte = prompt('<?php echo TXT_MANY; ?>','1'); 
       var refArticle = this.name ;
       var prix ;
     
        // code que j'aimerais mettre en place
       var test = this.index; //(this = le bouton sur  lequel j'ai cliqué, index= index du bouton (i) de la boucle ci dessous.
         if(btns[test-1].selected= true)
          {
               prix = btns[test-1].value ;
          }
        if(isNaN(qte))
    	{
    		alert("<?php echo TXT_ERROR_MANY ?>");
    	}
     
    	if(qte !=null && !isNaN(qte))
    	{
    								window.location.href="ajout_panier.php?qte="+qte+"&ref="+refArticle+"&prix="+prix; // on passe sur la page qui gère l'ajout dans le panier 
    	}
     
    }
     
    for(var i = 0 ; i<btns.length ; i++) // pour que tous les boutons soient clicquables
    {
    	if(btns[i].id == "btnAddPanier" ) //on vérifie bien que le bouton cliqué est celui correspondant à un ajout au panier 
    	{
     
    		btns[i].onclick = AddPanier; // pour que je puisse cliquer sur tous les boutons. c'est CE i que je veux récupérer
    	}
    }
    je veux récupérer le i (index) du bouton sur lequel j'ai appuyé ... (parce que les boutons radios sont à chaque fois à i-1 et i-2 du bouton...)

    pas de test dans la boucle

    merci d'avance

    Cordialement,
    MoKeS

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    319
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2006
    Messages : 319
    Par défaut
    Ton affaire m'a l'air assez spéciale mais si tu es ouvert à l'usage de prototype.js tu pourrais écrire un truc du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $$("input").each(function(button, index) {
        if(button.id == "btnAddPanier") {
            button.observe("click", function(event) {
                AddPanier(index);
            });
        }
    });
    Lors de l'appel à AddPanier ci-dessus on est dans un contexte où index a la valeur qui t'intéresse. Je te propose de la passer en argument mais tu pourrais faire autrement bien sûr.

  5. #5
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Salut,
    if(btns[test-1].selected= true)
    Affectes true à btns[test-1].selected donc toujours vrai.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(btns[test-1].selected)

  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
    Oui en javascript l'opérateur de comparaison d'egalité est == ou ===

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(btns[test-1].selected==true)
    ou le raccourci de andry
    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.

Discussions similaires

  1. SELECT : récupérer index en fonction d'un valeur
    Par denisc15 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 01/10/2010, 09h57
  2. Récupérer index bouton cliqué
    Par tenebriox dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 24/08/2010, 16h28
  3. Réponses: 4
    Dernier message: 22/09/2009, 08h04
  4. Récupérer index d'un tri (sort())
    Par flykev dans le forum Général Python
    Réponses: 2
    Dernier message: 20/02/2008, 21h46
  5. Réponses: 2
    Dernier message: 25/10/2005, 10h51

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