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 :

Boucle JS


Sujet :

JavaScript

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2014
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2014
    Messages : 28
    Points : 16
    Points
    16
    Par défaut Boucle JS
    Bonjour,

    Je dois effectuer un convertisseur de note de musique...mais ma dernière boucle ne fonctionne pas.

    Voila mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    function fonctionValider(){
    	var num=document.getElementById('num');
    	var noteChoisi=num.options[num.selectedIndex].value;
    	for (var j=1; j<=8; j++){	
    		if(noteChoisi == noteAmericaine[j]){
    			alert('La note classique  correspond à la note américaine .');
    		}
    	}
    }
    J'arrive tréss bien a récupérer la notechoisi par mon SELECT (j'ai vérifier) et le tableau noteAmericaine est ok...

    Le souci, je pense vient de ma boucle...

    En fait il faut que l'index du select soit égale a l'index de la valeur noteAmericaine...

    Cordialement.

  2. #2
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for (var j=1; j<=8; j++)
    T'es au courant que les indices de tableau commencent à 0 j'espère.

    Sinon, tu cherches à faire quoi exactement ? Et accessoirement, ton problème, quel est-il ?
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2014
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2014
    Messages : 28
    Points : 16
    Points
    16
    Par défaut
    Oui j'ai corrigé mon erreur d'index...

    Je veux faire correspondre deux index dans le if

    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
     window.onload = function() {
    	document.getElementById("titre").innerHTML='<p> Notation classique notation américaine </p>';
    	noteAmericaine=["C","D","E","F","G","A","B","C"];
    	selectNote=['Choisir...','Do','Ré','Mi','Fa','Sol','La','Si'];
    	var form=document.createElement('form');/*Création du formulaire*/
    	form.id='liste';
    	form.name='liste';
    	titre.appendChild(form);
    	var span=document.createElement('span');/*Création du span*/
    	var select=document.createElement('select');/*Création du select*/
    	select.id='sel';
    	span.innerHTML='Choisissez la note classique à convertir en note américaine : ';
    	form.appendChild(span);	
    	span.appendChild(select);
    	for (var i=0; i<=7; i++){
    		var option=document.createElement('option');/*Création des options*/
    		option.value=selectNote[i];
    		option.innerHTML=selectNote[i];
    		select.appendChild(option);
    	}
    }	
    function fonctionValider(){
    	var sel = document.getElementById('sel');
    	var IndexNoteChoisi = sel.options[sel.selectedIndex];
    	alert(noteAmericaine[IndexNoteChoisi]);
    	for (var j=0; j<=7; j++){
    		if(IndexNoteChoisi == noteAmericaine[j]){
    			alert('La note classique  correspond à la note américaine .');
    		}
    	}
    }
    Je n'arrive pas a récupérer la variable indexNoteChoisi....

  4. #4
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2014
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2014
    Messages : 28
    Points : 16
    Points
    16
    Par défaut
    J'ai mis un alert pour tester mon code et il me renvoi :[object HTMLoptionelement]

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    function fonctionValider(){
    	var sel = document.getElementById('sel');
    	var indexNoteChoisi = sel.options[sel.selectedIndex];
    	alert(indexNoteChoisi);
    	for (var j=0; j<=7; j++){
    		if(indexNoteChoisi == noteAmericaine[indexNoteChoisi]){
    			alert('La note classique  correspond à la note américaine .');
    		}
    	}
    }

  5. #5
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Points : 9 944
    Points
    9 944
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var indexNoteChoisi = sel.options[sel.selectedIndex];


    ???
    L'index choisi c'est selectedIndex tout court. Soit tu compares les valeurs, soit tu compares les index, mais il faut choisir !
    One Web to rule them all

  6. #6
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2014
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2014
    Messages : 28
    Points : 16
    Points
    16
    Par défaut
    Oui c'est vrai je suis en train de reprendre mon code...surtout que je n'ai aucun mal a le créer en PHP...

    Pour commencer je créer un tableau associatif

  7. #7
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2014
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2014
    Messages : 28
    Points : 16
    Points
    16
    Par défaut
    Oui j'ai fait un tableau associatif...

    Mon probléme est que mon selectIndex me retourne:[object HTMLoptionelement] !

  8. #8
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    C'est peut-être dû au fait qu'une balise HTML <option> correspond en JavaScript à un objet HTMLOptionElement...
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  9. #9
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2014
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2014
    Messages : 28
    Points : 16
    Points
    16
    Par défaut
    voila ou j'en suis (j'y suis presque !)...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    var sel = document.getElementById('sel');
    var nomNoteChoisi = sel.options[sel.selectedIndex].value;
    var indexNoteChoisi = sel.options[sel.selectedIndex];
    alert('La note classique '+nomNoteChoisi+' correspond à la note américaine '+note[indexNoteChoisi]+' .');
    }
    Mon probléme final est que je n'arrive pas a retourner l'index du select var indexNoteChoisi = sel.options[sel.selectedIndex];...

    Et le pire c'est que je retourne bien la valeur du select : nomNoteChoisi...

  10. #10
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2014
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2014
    Messages : 28
    Points : 16
    Points
    16
    Par défaut
    Arrétez tout j'ai trouvé !!!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    function fonctionValider(){
    	var sel = document.getElementById('sel');
    	var nomNoteChoisi = sel.options[sel.selectedIndex].value;
    	for(i in note){
    		if(nomNoteChoisi==i){
    			alert('La note classique '+nomNoteChoisi+' correspond à la note américaine '+note[i]+' .');
    		}
    	}
    }

  11. #11
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Points : 9 944
    Points
    9 944
    Par défaut
    Donc en fait rien à voir avec les index... Sinon sel.value ça marche aussi
    One Web to rule them all

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

Discussions similaires

  1. [XSLT] Faire une boucle sur une variable [i]
    Par PoT_de_NuTeLLa dans le forum XSL/XSLT/XPATH
    Réponses: 8
    Dernier message: 07/06/2010, 12h45
  2. [langage] if et boucle { ..}
    Par kacedda dans le forum Langage
    Réponses: 15
    Dernier message: 28/04/2003, 17h25
  3. [directsound] boucle de traitement de son
    Par gargle dans le forum DirectX
    Réponses: 5
    Dernier message: 24/03/2003, 10h47
  4. Sortir d'un progamme qui boucle ou qui refresh
    Par mikevador02 dans le forum C
    Réponses: 12
    Dernier message: 14/12/2002, 09h38
  5. Réponses: 2
    Dernier message: 29/05/2002, 20h43

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