8768 sujets

Développement web côté serveur, CMS

Bonjour,

Voilà j'ai un soucie je dois faire un formulaire de calcul de moyenne '
Ils fonctionne bien, mais dernièrement je tourne en rond car je voudrais appliquer une option en plus :

Avant de faire le calcul de la moyenne je veux tester si toutes les notes sont saisies SINON il faut afficher un message en dessous de la Moyenne générale qui précise à la personne : "Attention vous avez pas rempli tout les champs, il manque les notes suivantes...." <- exemple : mathématiques, français ..ect

J'ai essayé de commencer à construire un bout de code pour cette option mais sans succès en plus j'ai eu une erreur =S :
Parse error: syntax error, unexpected '{' in C:\wamp\www\.. on line 39

<?php
$matiere = [
    "math" => ["value" => 0, "label" => "Mathématiques"],
    "francais" => ["value" => 0, "label" => "Français"],
    "espagnol" => ["value" => 0, "label" => "Espagnol"],
    "eco" => ["value" => 0, "label" => "Economie"],
    "phychim" => ["value" => 0, "label" => "Physique-chimie"],
    "art" => ["value" => 0, "label" => "Art-plastique"],
    "music" => ["value" => 0, "label" => "Musique"]
];
foreach ($_POST as $index=>$matiere) {
if (!empty ($matiere [$index]) {
$erreur = "Attention  dans le calcul de la moyenne il manque la ou les notes pour les UE suivantes : X - Y - Z ";
}
 
?>


Voici le code tout entier :

Code :
 
<?php
  
$moyenne = 0 ;
  
// r?p?tion variable formulaire
if(isset($_POST['note'])) {
  
   // recupere la somme
   $resultat = $_POST['note'];
   $somme = 0;
   $count = 0;
   foreach ($resultat as $valeur) {
      if(!empty($valeur)){
         $somme += $valeur; // Ou $somme = $somme + $valeur;
         $count += 1;
		
      }
       
   }
   $moyenne = $somme/$count;
   
?>
<?php
}
?>

<?php 
$matiere = [
    "math" => ["value" => 0, "label" => "Mathématiques"],
    "francais" => ["value" => 0, "label" => "Français"],
    "espagnol" => ["value" => 0, "label" => "Espagnol"],
    "eco" => ["value" => 0, "label" => "Economie"],
    "phychim" => ["value" => 0, "label" => "Physique-chimie"],
    "art" => ["value" => 0, "label" => "Art-plastique"],
    "music" => ["value" => 0, "label" => "Musique"]
];
foreach ($_POST as $index=>$matiere) {
if (!empty ($matiere [$index]) {
$erreur = "Attention  dans le calcul de la moyenne il manque la ou les notes pour les UE suivantes : X - Y - Z ";
} 

?>



<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr"> 
<head> 
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" /> 


 
</head>
<body>
<h4> FORMULAIRE CALCUL D'UNE MOYENNE  </h4>
<form method = "post"  >
<table>
 
<tr>
<th>
<label for ="note1"   > Mathematiques : </label> <input type="number"  name="note[]" id="note1" value="<?php if(isset($_POST['note1[]'])) { echo htmlentities($_POST['note1[]']);}?>"/> </br> </br>
</th>
</tr>
 
<tr>
<th>
<label for ="note2"  > Francais : </label> <input type="number" name="note[]" id="note2" > </br> </br>
</th>
</tr>
 
<tr>
<th>
<label for ="note3"> Espagnol : </label> <input type="number" name="note[]" id="note3" > </br> </br>
</th>
</tr>
 
<tr>
<th>
<label for ="note4" > Economie : </label> <input type="number" name="note[]" id="note4"> </br> </br>
</th>
</tr>
 
<tr>
<th>
<label for ="note5" > Physique-chimie:  </label> <input type="number" name="note[]" id="note5"  > </br> </br>
</th>
</tr>
 
<tr>
<th>
<label for ="note6"  > Art-plastique : </label> <input type="number" name="note[]" id="note6" > </br> </br>
</th>
</tr>
 
<tr>
<th>
<label for ="note7"  > Musique </label> <input type="number" name="note[]" id="note7" > </br> </br>
</th>
</tr>

 <tr>
 <th>
<input type=submit value="Calculer la moyenne" ></input></br> </br>
MOYENNE GENERALE : <input type="text" value="<?php echo $moyenne;?> /20">
</th>
</tr>
</form>
</body>
</html>

En espérant que vous m'aiderez car je coince depuis un certain moment :' (
MERCI ' . 
Bonjour !

La première boucle foreach n'a pas l'air d'être fermée... dans le premier encadré de code.

C'est plus facile quand les lignes sont numérotées car il y a eu un message d'erreur...

Smiley smile
Modifié par Zelena (02 Jun 2016 - 11:25)
J'avais oublié de fermer une parenthèse après index Smiley cligne

J'ai plus d'erreur, mais ce que je veux faire (expliqué dans le haut du sujet) ne fonctionne pas c'est sur qu'il doit manquer des choses , mais dur voir comment procéder..... Smiley decu