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 :

Problème de tableau javascrpt


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Par défaut Problème de tableau javascrpt
    Bonjour à tous,

    Je finalise un formulaire web (HTML/JAVASCRIPT) qui va permettre à des étudiants de choisir des cours.

    Pour ce faire, ils doivent choisir un cours dans une select list et ensuite cocher une case à cocher pour choisir le type du cours (théorie, TP ou exercice).

    Quand l'étudiant choisit le cours dans la select list, le nom du cours apparaît directement dans une zone de texte.

    Le problème est que depuis que j'ai ajouté des cours, il indique le nom d'un cours qui ne correspond pas au mnémonic choisi.

    Voici le code :

    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
    var nom_matiere = new Array('',
    									'Biochimie médicale',//BIOC 008 A KUMPS MA1 (2e GRADE)
    									'Biologie générale',//BIOL-J-101 DE VOS BA1
    									'Biologie végétale',//BIOL-J-102 LEJOLY BA1
    									'Microbiologie, immunologie et hygiène',//BIOL-J-301 DEVLEESCHOUWER BA3
    									'Chimie générale et introduction à la chimie organique',//
    									'Physique expérimentale',
    									'Biologie générale',
    									'Biologie végétale',
    									'Mathématiques',
    									'Projet transdisciplinaire en sciences expérimentales',
    									'Pharmacie et société',									
    									'Introduction botanique à la pharmacognosie...',
    									'Biologie moléculaire et cellulaire',
    									'Biochimie générale et humaine',
    									'Chimie organique',
    									'Pratique de l\'outil informatique',
    									'Physiologie et anatomie humaines',
    									'',
    									'Analyse pharmaceutique : méthodes physico-chimiques...',
    									'Analyse pharmaceutique : méthodes spectroscopiques',
    									'','','','','',
    									'Biostatistique',
    									'Projet transdisciplinaire en sciences du vivant',
    									'Projet transdisciplinaire en analyse spectrale',
    									'','','','','','','','','','','');
    C'est le tableau qui reprend le nom des cours (dans l'ordre).
    Quand je fais une fenêtre affiche tous les cours.

    voici le code de la select list :

    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
    37
    38
    39
    40
    41
     <select name="select4" id="select4" onChange="maj()">
              <option select=""> Choissisez une matière</option>
              <option value="1">BIOC-008</option>
    		  <option value="2">BIOL-J-101</option>
    		  <option value="3">BIOL-J-102</option>
    		  <option value="4">BIOL-J-201</option>
              <option value="5">BIOL-J-301</option>
              <option value="6">BMOL-J-201</option>
              <option value="7">BMOL-J-202</option>
              <option value="8">CHIM-J-101</option>
    		  <option value="9">CHIM-J-201</option>
              <option value="10">DROI-016</option>
    		  <option value="11">ETHI-005</option>
    		  <option value="12">INFO-J-201</option>
              <option value="13">MATH-F-109-B</option>
    		  <option value="14">MEDI-J-201</option>
              <option value="15">MEDI-J-301</option>
    		  <option value="16">PHAR-006</option>
    		  <option value="17">PHAR-039</option>
              <option value="18">PHAR-043</option>
    		  <option value="19">PHAR-083</option>
    		  <option value="20">PHAR-093</option>	
    		  <option value="21">PHAR-094</option>
    		  <option value="22">PHAR-095</option>
    		  <option value="23">PHAR-J-201</option>
              <option value="24">PHAR-J-202</option>
              <option value="25">PHAR-J-301</option>
              <option value="26">PHAR-J-302</option>
              <option value="27">PHAR-J-303</option>
              <option value="28">PHAR-J-304</option>
              <option value="29">PHAR-J-305</option>
              <option value="30">PHYS-J-101</option>
    		  <option value="31">TOXI-016</option>
    		  <option value="32">TRAN-J-101</option>
    		  <option value="33">TRAN-J-102</option>
    		  <option value="34">STAT-J-201</option>
              <option value="35">TRAN-J-201</option>
              <option value="36">TRAN-J-202</option>
              <option value="37">TRAN-J-301</option>
              <option value="38">TRAN-J-302</option>
            </select>
    Son action est onchange, il va chercher maj()

    La foncton maj est ici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    function maj() {
    				t = document.getElementById('CI1');	
    				s = document.getElementById('select4');
    				alert(s.value);
    				t.value = nom_matiere[s.options[s.selectedIndex].value];
    				alert(t.value);
    				maj_checkbox();
    				maj_checkboxCI1TP();				
    				maj_checkboxCI1EX();
    				document.form1.hfCI1.value=t.value;
    				document.form1.hfCI1mnemonic.value = s.value;}
    Quand je fais alert(s.value); j'obtiens 1 pour le premier mnémonic, nommé BIOC 008 qui devrait indiqué dans la zone de texte "biochimie médicale".

    Quand je fais alert(t.value), il me donne un autre nom de cours, je pense donc que le problème se trouve ici ? Il me donne le nom du cours "Introduction Botanique à la Pharmacognosie..."

    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
    function maj_checkbox() {
    			//TABLEAU D'ECTS
    			//c'est ici qu'on change la valeur des ECTS !!!!!!!!!!!!
    			//0 correspond à choississez une matière
    		var credits = new Array(0,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);	// Tableau des crédits ECTS. On retrouve 21 valeur ce qui correspond au nombre d'option disponible dans ton select. A toi de choisir la valeur des crédits ECTS en fonction de la matière. J'ai fais simple pour l'exemple mais les nombres peuvent très bien changer ;)
    			cCI1TH = document.getElementById('cbCI1TH');	// On récupère la checkbox qui a pour id="checkboxECTS"  (correspond à TH)
    			cCI1TH_val = document.getElementById('ECTSCI1TH');	// On récupère le input text à coté de la checkbox
    			s = document.getElementById('select4');	
    			if(cCI1TH.checked) {		// On test si la checkbox est coché
    				cCI1TH_val.value = credits[s.options[s.selectedIndex].value];	// Puis on met à jour le input text en récupèrant la valeur de la matière selectionné et en allant cherché le nombre de crédits ECTS dans le tableau credits
    				//alert(cCI1TH_val.value);
    				ECTSCITH = cCI1TH_val.value;
    				//alert(ECTSCITH);
    				//document.form1.txtTotalECTS.value = ECTSCITH.value;
    				document.form1.hfCI1TH.value=cCI1TH_val.value;
     
    			} else {
    				cCI1TH_val.value = " ";	// Si la checkbox est décoché on met une chaine vide pour les crédits ECTS.
    			}
    //			somme();		
    					}
    	</script>
    Cette fonction permet de mettre à jour les valeurs du type de cours (th tp ou ex) cette partie du code fonctionne étrangement bien.

    Voyez-vous ce qui ne permet pas au progamme de d'assoicier le mnémonic et son intitulé de cours ?

    Merci d'avance pour l'aide que vous m'apporterez.

    beegees

  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
    un array en javascript ne tolère pas de commentaires ....


    [edit ]
    ha si je m'y prenais mal ...
    j'ai rien dit ...
    [edit]
    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 expérimenté
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Par défaut
    Bonjour SpaceFrog,

    Malheureusement, le fait de retirer les commentaires n'arrange pas le problème.

    J'espère que quelqu'un trouvera car je suis dans une situation assez critique vue que la rentrée académique est la semaine prochaine.

    Je continue à chercher une solution ou un solution aleternative.

    beegees

  4. #4
    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
    tes values commencent à 1
    les indices d'array commencent à 0
    le selected index commence à 0

    tu as un décallage d'un non ?
    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 !

  5. #5
    Membre expérimenté
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Par défaut
    Re-bonjour SpaceFrog,

    Merci pour ta réponse.

    Le décalage n'est pas de 1.



    Le premier mnemonic (BIOC 008) devrait correspondre au premier nom de cours ci-dessous mais ce n'est pas le cas :

    'Biochimie médicale',
    'Biologie générale',
    'Biologie végétale',
    'Microbiologie, immunologie et hygiène',
    'Chimie générale et introduction à la chimie organique',
    'Physique expérimentale',
    'Biologie générale',
    'Biologie végétale',
    'Mathématiques',
    'Projet transdisciplinaire en sciences expérimentales',
    'Pharmacie et société',
    il donne celui-ci 'Introduction botanique à la pharmacognosie...',

    j'insère le code en attachment.

    Merci à tous.

    beegees

  6. #6
    Membre expérimenté
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Par défaut
    à la place du deuxième tableau, on ne pourraît pas utiliser un select case genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    switch (s)  
    case 1 : {t.value = 'Biochimie médicale'};

    Merci

    bgs

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

Discussions similaires

  1. Débutant en Javascript : problème de tableau !
    Par bluheim dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 06/11/2005, 15h03
  2. [XHTML] problème de tableau
    Par virgul dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 28/04/2005, 07h18
  3. Problème de tableau
    Par tom06440 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 26/04/2005, 20h30
  4. Problème de tableau
    Par krfa1 dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 08/02/2005, 11h09

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