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 :

Comparer des listes incrémentées


Sujet :

JavaScript

  1. #1
    Membre à l'essai
    Femme Profil pro
    Ergonome
    Inscrit en
    Août 2014
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ergonome

    Informations forums :
    Inscription : Août 2014
    Messages : 52
    Points : 24
    Points
    24
    Par défaut Comparer des listes incrémentées
    Bonjour,

    je cherche à comparer les valeurs choisies de plusieurs listes déroulantes qui ont le même nom et sont incrémentés (liste1, liste2 etc.). Chaque liste comporte les mêmes options de choix.

    Si la personne choisit choix1 dans liste1 et choix1 dans liste2 je voudrais lui dire "attention doublon". En gros.

    Quelque chose qui serait de type:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if (document.getElementById('liste1').value == document.getElementById('liste2').value* )<br>** {
    ****alert ('doublon');
    ****return false;
    }
    Sauf que là j'ai 15 listes environ donc je ne peux pas faire ça comme ça, il faut que je remplace les chiffres qui présents après 'liste' de manière automatique.

    Comment faire?

  2. #2
    Expert éminent
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Points : 9 127
    Points
    9 127
    Par défaut
    Bonjour,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    for (var i=0; i <100 ; i++) { 
      if (document.getElementById('liste'+i).value == 
          document.getElementById('liste'+(i+1)).value* ) {
        alert ('doublon');
        return false;
      }
    }
    A+JYT

  3. #3
    Membre à l'essai
    Femme Profil pro
    Ergonome
    Inscrit en
    Août 2014
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ergonome

    Informations forums :
    Inscription : Août 2014
    Messages : 52
    Points : 24
    Points
    24
    Par défaut
    Merci pour cette réponse. Mais je ne réussit pas à faire fonctionner cela.

    J'ai donc fait:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    function verifForm ()
    {	for (var i=0; i <100 ; i++) { 
    	  if (document.getElementById('liste'+i).value == document.getElementById('liste'+(i+1)).value ) 
    	  {
    		alert ('doublon');
    		return false;
    	  }
    	}
    }
    et dans voici un bout du formulaire :
    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
    <form onsubmit="return verifForm(this)" name="ajouts" method="post" action="ajoute-fin.php" enctype="multipart/form-data">
    <?php
                                            while ($repetitions <= 10) //boucle pour avoir 10 lignes pour remplir.
                                            {
                                                    echo'
                                    
                                    <tr>'; ?>
    					<?php
    						$reponse = $bdd->query('SELECT * FROM listesgroupes');
    						$groupes= array (); //déclaration d'un tableau vide
    						while ($donnees = $reponse->fetch())
    						{
    							$groupes[$donnees['id']] = $donnees['groupe'];	
    						}
    						echo '<tr><td><select name="liste'.$repetitions.'" id="liste'.$repetitions.'">';
    						echo'<option value="choix">----Choisir ----</option>';		
    						foreach ($groupes as $id => $groupe) //récupération de chaque goupes
    						{		
    							echo '<option value="'.$id.'" >'.$groupe.'</option> ';
    						}
    						echo '</select></td>';?>
    Où est mon erreur ?

    Merci

  4. #4
    Expert éminent
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Points : 9 127
    Points
    9 127
    Par défaut
    Je ne suis pas sur de saisir ce que tu fis tu créé 10 listes et tu en teste 100

    mais là tu teste juste deux liste successive donc tu ne teste pas la liste 5 avec la liste 9 par exemple.

    A+JYT

  5. #5
    Membre à l'essai
    Femme Profil pro
    Ergonome
    Inscrit en
    Août 2014
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ergonome

    Informations forums :
    Inscription : Août 2014
    Messages : 52
    Points : 24
    Points
    24
    Par défaut
    C'est uniquement pour l'exemple. J'ai là 10 listes pour l'exemple mais il pourrait y en avoir plus. Le chiffre est là pour l'ex, en réalité, il est conditionné par le nombre d'entrées que j'ai dans ma base, mais peu importe le principe est le même.

    Effectivement je souhaiterais comparer la ligne 1 avec la 2 mais aussi ligne 1 vs ligne 3, ligne 2 vs ligne 3 etc.

  6. #6
    Expert éminent
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Points : 9 127
    Points
    9 127
    Par défaut
    pour ça il te faut deux boucles
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    for (var i=0; i <100 ; i++) {
      //comparer la liste i avec toutes les autres
      for (var j=0; j <100 ; j++) {
       //compare listei avec liste j
       if ((i != j) && (document.getElementById('liste'+i).value == 
           document.getElementById('liste'+j).value* )) {
         alert ('doublon');
         return false;
       }
      }
    }
    A+JYT

  7. #7
    Membre à l'essai
    Femme Profil pro
    Ergonome
    Inscrit en
    Août 2014
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ergonome

    Informations forums :
    Inscription : Août 2014
    Messages : 52
    Points : 24
    Points
    24
    Par défaut
    En effet, j'avais tenté deux boucles, mais bon comme je ne suis pas une expert du JS cela n'avait pas fonctionné.

    Cela étant, cela ne fonctionne pas. Lorsque j'utilise Firebug ou autre pour voir s'il y a des erreurs, celui ci me renvoie une erreur "Uncaught TypeError: Cannot read property 'value' of null"...cette erreur disparait tout de suite et me met sur la page ajoutfin.php. Donc pas de "doublon" affiché.

    Pourtant, mes listes sont par défauts sur la valeur "choix". Donc il devrait y avoir "doublon" à chaque fois si je ne choisis rien non ?

    A quoi est due cette erreur ?
    merci

  8. #8
    Membre à l'essai
    Femme Profil pro
    Ergonome
    Inscrit en
    Août 2014
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ergonome

    Informations forums :
    Inscription : Août 2014
    Messages : 52
    Points : 24
    Points
    24
    Par défaut
    J'ai rectifié l'erreur qui était toute bête.

    Le code commençait par var i=0 et var j=0. Cela commence à 1, j'ai dc remplacé 0 par 1 et maintenant ca marche.

    merci beaucoup ! Cela faisait quelques jours que je me galérais, donc c'est super !

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

Discussions similaires

  1. [XL-2010] [Vidéo] comparer des listes grâce à la mise en forme conditionnelle
    Par Pierre Fauconnier dans le forum Excel
    Réponses: 8
    Dernier message: 27/09/2020, 21h36
  2. Comparer des listes
    Par Flopp dans le forum C#
    Réponses: 2
    Dernier message: 10/02/2010, 12h51
  3. Comparer des listes de prix
    Par denisfavre dans le forum Access
    Réponses: 8
    Dernier message: 08/11/2005, 20h11

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