Bonjour à tous,
J'aimerais savoir si c'est possible de recharger une liste déroulante enfin que la liste déroulante prenne une valeur en adéquation avec la valeur de mon champ input ?
JE m'explique :
La valeur de mon champ input type="number" est directement lié à un niveau CECR ( pour ceux à qui ça dit quelque chose TOEIC, TFI ...), je dispose d'une fonction javascript qui calcule une moyenne et ecrit cette moyenne dans le champ number, j'aimerais que lorsque le champ est écrit par la fonction javascript que la liste déroulante prenne la bonne valeur également ?
Voici le code de ma fonction javascript :
Voici le fichier php:
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
42
43
44
45
46
47 function calculerMoyenne(){ var moyenne=0; var nb=0; var compr_orale = parseFloat(document.getElementById('comprehension_orale_d').value); var expr_orale = parseFloat(document.getElementById('expression_orale_d').value); var prononciation = parseFloat(document.getElementById('prononciation_d').value); var aisance = parseFloat(document.getElementById('aisance_d').value); var grammaire = parseFloat(document.getElementById('grammaire_d').value); var compr_ecrite = parseFloat(document.getElementById('comprehension_ecrite_d').value); var expr_ecrite = parseFloat(document.getElementById('expression_ecrite_d').value); if(compr_orale != 0) { moyenne += compr_orale; nb++; } if(expr_orale !=0) { moyenne += expr_orale; nb++ } if(prononciation != 0) { moyenne += prononciation ; nb++; } if(aisance != 0) { moyenne += aisance ; nb++; } if(grammaire != 0) { moyenne += grammaire ; nb++; } if(compr_ecrite != 0) { moyenne += compr_ecrite; nb++; } if(expr_ecrite != 0) { moyenne += expr_ecrite ; nb++; } if(nb == 0){nb++;} moyenne = moyenne/nb; moyenne = Math.round(moyenne*100)/100; document.getElementById('niv_ALTE_d').value = moyenne; }
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 <label>Niveau CECR :<select id="list_cecr_d" name="list_cecr_d"> <?php include("chargement/chargement_cecr.php");?> </select></label> <label>Niveau ALTE :<input type="number" id="niv_ALTE_d" min="0" name="niv_ALTE_d" step="0.01" value="<?php echo $row['eval_alte'] ?>" /></label>
et le code de chargement_cecr.php
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 <?php echo '<option value="0">Sélectionner un niveau CECR</option>'; $sql = "SELECT cecr_id, cecr_grade, cecr_descriptif FROM cecr ORDER BY cecr_grade"; $result = $conn->query($sql); while($cecr = $result->fetch(PDO::FETCH_ASSOC)) { ?> <option value="<?php echo $cecr['cecr_id'] ?>" <?php if($eval_cecr==$cecr['cecr_id']){ echo 'selected'; } ?>><?php echo $cecr['cecr_grade']."-".$cecr['cecr_descriptif']; ?></option>
Je pense que AJAX est la solution afin de recharger ma liste déroulante apres un onchange() de mon input type="number", cependant je n'ai pas d'idée de comment faire cela dans les règles.
Merci![]()
Partager