Bonjour la communauté,
Je travail sur une application de gestion des notes scolaires et a cet effet j'ai conçu un formulaire pour enregistrer les notes des élèves d'une classe avec un effectif variable (l'effectif des élèves varient par classe).
Pour enregistrer les notes des élèves d'une classe, on sélectionne la classe et le formulaire ci-dessous apparaît:
Voici le code de la capture d'écran du formulaire ci-dessus:
Dans ce formulaire, l'utilisateur sélectionne une année scolaire, le mois et la matière puis valide le 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
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76 <form name="form-enr-note" method="POST" action=""> <?php if(isset($erreursql)){ echo $erreursql; } if(isset($infosuccess)){ echo $infosuccess; } ?> <div class="col-md-12 form-group has-feedback"> <div class="col-xs-12 col-sm-2 col-md-2"><?php $sqlan=$connexion->query("SELECT * FROM annee_scolaires"); ?><label for="anant">Année</label> <select name="anant" id="anant" class="form-control"><?php if(!$sqlan){ ?> <option>Erreur 1</option><?php }else{ ?> <option value="0">Sélectionnez</option><?php if(mysqli_num_rows($sqlan)<>0){ while($repsqlan=$sqlan->fetch_assoc()){ ?> <option value="<?php echo $repsqlan['id_an_scol']; ?>"><?php echo $repsqlan['lib_an_scol']; ?></option><?php } }elseif(mysqli_num_rows($sqlan)==0){ ?> <option>Vide</option><?php } } ?> </select> <span class="error-message"><?php if(isset($erreuranant)) echo $erreuranant; ?></span> </div> <div class="col-xs-12 col-sm-2 col-md-2 col-lg-2"> <label for="nmois">Mois</label> <select name="nmois" class="form-control" id="nmois"> <option value="0">Sélectionnez</option> </select> <span class="error-message"><?php if(isset($erreurnmois)) echo $erreurnmois; ?></span> </div> <div class="col-xs-12 col-sm-2 col-md-2 col-lg-2" id="matiere"><?php $sqlcl=$connexion->query("SELECT * FROM `matieres_dispenses` LEFT JOIN `appgescodb`.`matieres` ON `matieres`.`id_mat`=`matieres_dispenses`.`id_mat` WHERE id_classe_scol='".$ci."'"); //$sqlcl=$connexion->query("SELECT * FROM options_detudes LIMIT 3"); if(!$sqlcl){ $erreursql="<div class='row'><div class='col-md-12 alert-danger text-center'><h4>Une erreur interne s'est produite! Veuillez informer l'administrateur de l'application (" . $connexion->errno . ") " . $connexion->error."</h4></div></div>"; } else{ if(mysqli_num_rows($sqlcl)<>0){?> <label for="nmatiere">Matières</label> <select name="nmatiere" class="form-control" id="nmatiere"> <option value='0'>Sélectionnez</option><?php while($rep=$sqlcl->fetch_assoc()){ if(isset($nmatiere)){ if($nmatiere==$rep['id_mat']){ echo"<option value='".$nmatiere."' selected>".$rep['nom_mat']."</option>"; $rep['id_mat']++; continue; } echo"<option value='".$rep['id_mat']."'>".$rep['nom_mat']."</option>"; } else{ echo"<option value='".$rep['id_mat']."'>".$rep['nom_mat']."</option>"; } $rep['id_mat']++; } ?> </select> <span class="error-message"><?php if(isset($erreurnmatiere)) echo $erreurnmatiere; ?></span><?php } else{ if(mysqli_num_rows($sqlcl)==0){?> <label for="nmatiere">Matières</label> <select name="nmatiere" id="nmatiere" class="form-control" size='1'> <option value=0>Liste vide</option> </select><?php } } } ?> </div> <div class="col-xs-12 col-sm-3 col-md-2"> <label for="noteecrite">Soumettre</label><br> <input type="submit" name="enregistrer" id="enregistrer" value="Soumettre" class="btn btn-primary pull-left"> </div> </div> </form>
Voici le code de traitement du formulaire:
Après le traitement du premier formulaire, la liste des élèves apparaît avec un champ text devant chaque nom d'élève pour saisir la note de l'élève comme le montre cette deuxième capture d'écran.
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73 <?php if(isset($_POST['enregistrer'])){ $anant=strip_tags($_POST['anant']); $anant=htmlspecialchars($anant); $nmois=strip_tags($_POST['nmois']); $nmois=htmlspecialchars($nmois); $nmatiere=strip_tags($_POST['nmatiere']); $nmatiere=htmlspecialchars($nmatiere); $valid=true; if(!preg_match("#^[0-9]{1,3}$#", $anant) || ($anant==0)){ $valid=false; echo"<div class='row'><div class='col-md-12 alert-danger text-center'><h4>Veuillez sélectionner une année scolaire ! </h4></div></div>"; } if(!preg_match("#^[0-9]{1,2}$#", $nmois) || ($nmois==0)){ $valid=false; echo"<div class='row'><div class='col-md-12 alert-danger text-center'><h4>Veuillez sélectionner un mois ! </h4></div></div>"; } if(!preg_match("#^[0-9]{1,3}$#", $anant) || ($anant==0)){ $valid=false; echo"<div class='row'><div class='col-md-12 alert-danger text-center'><h4>Veuillez sélectionner une année scolaire ! </h4></div></div>"; } if(!preg_match("#^[0-9]{1,3}$#", $nmatiere) || ($nmatiere==0)){ $valid=false; echo"<div class='row'><div class='col-md-12 alert-danger text-center'><h4>Veuillez sélectionner une matière ! </h4></div></div>"; } if($valid){ $lcl=$connexion->query("SELECT * FROM classes_detudes WHERE id_an_scol='".$anant."' AND id_classe_scol='".$ci."'"); if(!$lcl){ $erreursql="<div class='row'><div class='col-md-12 alert-danger text-center'><h4>Une erreur interne s'est produite! Veuillez informer l'administrateur de l'application (" . $connexion->errno . ") " . $connexion->error."</h4></div></div>"; }else{ if(mysqli_num_rows($lcl)>=1){ $n=1; $i=1; ?> <fieldset><legend>Veuillez remplir la fiche de note</legend> <div class="row"> <div class="col-sm-12 col-md-10 col-lg-8"> <form name="fiche" method="POST" action=""> <table class='table'> <thead><tr><th>N°</th><th>Matricule</th><th>Prénoms et Noms</th><th>Notes</th></tr></thead> <tbody><?php while($replcl=$lcl->fetch_assoc()){ $idelev=$replcl['id_elev']; ?> <tr><td><?php echo $n++; ?></td> <td><?php $sqlpn=$connexion->query("SELECT num_mat_elev, prenom_elev, nom_fam_elev FROM eleves WHERE id_elev='".$idelev."'"); if(!$sqlpn){ $erreursql="<div class='row'><div class='col-md-12 alert-danger text-center'><h4>Une erreur interne s'est produite! Veuillez informer l'administrateur de l'application (" . $connexion->errno . ") " . $connexion->error."</h4></div></div>"; }else{ if(mysqli_num_rows($sqlpn)>=1){ while($repsqlpn=$sqlpn->fetch_assoc()){ $matricule=$repsqlpn['num_mat_elev']; $prenom=$repsqlpn['prenom_elev']; $nom=$repsqlpn['nom_fam_elev']; echo $matricule; } } elseif(mysqli_num_rows($sqlpn)==0){ echo'Liste vide'; } } ?></td> <!-- Prénoms et Noms de l'élève --> <td><?php echo $prenom.' '.$nom; ?> </td> <!-- Note --> <td width=50><input type="text" class="form-control" id="note" name="note<?php echo $i++; ?>" placeholder="Note" value="<?php if(isset($note)) echo $note; ?>" size=20> <span class="error-message"><?php if(isset($erreurnote)) echo $erreurnote; ?></span> </td> </tr><?php } ?> </tbody> </table> <input type="hidden" name="annee" value="<?php echo $anant; ?>"> <input type="hidden" name="nclasse" value="<?php echo $ci; ?>"> <input type="hidden" name="nmatiere" value="<?php echo $nmatiere; ?>"> <input type="submit" name="sauvegarder" value="Enregistrer" class="btn btn-primary pull-right"> </form> </div> </div> </fieldset><?php } } } } ?>
Le blocus est que je ne sais pas comment traité les notes de chaque élève après soumission de ce formulaire vu que l'effectif des élèves est variable.
Pour cette capture d'écran on voit 6 élèves mais sa peut être 30 élèves pour une autre classe voir même 45.
J'ai commencé avec ceci:
S'il vous plaît, j'ai besoin de vos solutions!
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 if(isset($_POST['sauvegarder'])){ $anant=strip_tags($_POST['anant']); $anant=htmlspecialchars($anant); $nmois=strip_tags($_POST['nmois']); $nmois=htmlspecialchars($nmois); $nmatiere=strip_tags($_POST['nmatiere']); $nmatiere=htmlspecialchars($nmatiere); $valid=true; if(!preg_match("#^[0-9]{1,3}$#", $anant) || ($anant==0)){ $valid=false; echo"<div class='row'><div class='col-md-12 alert-danger text-center'><h4>Veuillez sélectionner une année scolaire ! </h4></div></div>"; } if(!preg_match("#^[0-9]{1,2}$#", $nmois) || ($nmois==0)){ $valid=false; echo"<div class='row'><div class='col-md-12 alert-danger text-center'><h4>Veuillez sélectionner un mois ! </h4></div></div>"; } if(!preg_match("#^[0-9]{1,3}$#", $anant) || ($anant==0)){ $valid=false; echo"<div class='row'><div class='col-md-12 alert-danger text-center'><h4>Veuillez sélectionner une année scolaire ! </h4></div></div>"; } if(!preg_match("#^[0-9]{1,3}$#", $nmatiere) || ($nmatiere==0)){ $valid=false; echo"<div class='row'><div class='col-md-12 alert-danger text-center'><h4>Veuillez sélectionner une matière ! </h4></div></div>"; }if(isset($_POST['enregistrer'])){ $anant=strip_tags($_POST['anant']); $anant=htmlspecialchars($anant); $nmois=strip_tags($_POST['nmois']); $nmois=htmlspecialchars($nmois); $nmatiere=strip_tags($_POST['nmatiere']); $nmatiere=htmlspecialchars($nmatiere); $valid=true; if(!preg_match("#^[0-9]{1,3}$#", $anant) || ($anant==0)){ $valid=false; echo"<div class='row'><div class='col-md-12 alert-danger text-center'><h4>Veuillez sélectionner une année scolaire ! </h4></div></div>"; } if(!preg_match("#^[0-9]{1,2}$#", $nmois) || ($nmois==0)){ $valid=false; echo"<div class='row'><div class='col-md-12 alert-danger text-center'><h4>Veuillez sélectionner un mois ! </h4></div></div>"; } if(!preg_match("#^[0-9]{1,3}$#", $anant) || ($anant==0)){ $valid=false; echo"<div class='row'><div class='col-md-12 alert-danger text-center'><h4>Veuillez sélectionner une année scolaire ! </h4></div></div>"; } if(!preg_match("#^[0-9]{1,3}$#", $nmatiere) || ($nmatiere==0)){ $valid=false; echo"<div class='row'><div class='col-md-12 alert-danger text-center'><h4>Veuillez sélectionner une matière ! </h4></div></div>"; } }
Partager