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