Modifier un formulaire
Résolu
chrisCL974
Messages postés
63
Date d'inscription
Statut
Membre
Dernière intervention
-
yg_be Messages postés 23541 Date d'inscription Statut Contributeur Dernière intervention -
yg_be Messages postés 23541 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
J'ai un projet où on crée des formations(cours) à partir des programmes(matière) créés
Je n'arrive pas à modifier les formations créées. Lorsque je clique sur le bouton modifier, il rafraichit juste la page
Voici mon code pour editForma.php :
Et dans mon creerForm, j'ai créé deux fonctions edit et update :
J'ai un projet où on crée des formations(cours) à partir des programmes(matière) créés
Je n'arrive pas à modifier les formations créées. Lorsque je clique sur le bouton modifier, il rafraichit juste la page
Voici mon code pour editForma.php :
<?php include "../admin/header.php"; include "../model/creerForm.php"; include "../model/creerProgramme.php"; $creerForm = new creerForm; $creerProgramme = new creerProgramme; $id = $_REQUEST['edit']; $insert = $creerForm->createForm(); $row = $creerForm->editForm($id); $rowsallPro = $creerProgramme->getAllProgramme(); $localhost = "localhost"; $dbusername = "root"; $password = ""; $db = "formation_db"; $conn = mysqli_connect($localhost, $dbusername, $password, $db); ?> <?php if(isset($_POST['update'])) { if(isset($_POST['programme']) && isset($_POST['lieu']) && isset($_POST['formateur']) && isset($_POST['forma_date']) && isset($_POST['forma_heure']) && isset($_POST['forma_minute']) && isset($_POST['nb_place'])) { $data['formaID'] = $id; $data['programme'] = $_POST['programme']; $data['lieu'] = $_POST['lieu']; $data['formateur'] = $_POST['formateur']; $data['forma_date'] = $_POST['forma_date']; $data['forma_heure'] = $_POST['forma_heure']; $data['forma_minute'] = $_POST['forma_minute']; $data['nb_place'] = $_POST['nb_place']; $update = $creerForm->updateForm($data); } else { header("Location: index_admin.php"); } } ?> <div class="d-flex justify-content-center" style="margin-bottom:50px"> <?php if(!empty($row)) {?> <div class="container"> <h2 style="color:#45509E;text-align: center;"> <b>Modification de la formation : <br> "<?php echo $row[0]['programme'];?>"</b> </h2> <h4 style="color:grey;text-align: center;">Date : <?php echo $row[0]['forma_date'];?></h4> </div> <?php }?> </div> <?php if(!empty($row) AND ($rowsallPro)) {?> <div class="d-flex justify-content-center"> <div class="card" style="width: 500px;"> <div class="card-body"> <div> <form action="" method="post"> <select class="form-select" name="programme" aria-label="Default select example" required> <option disabled selected> <b>Programme :</b> <?php echo $row[0]['programme'];?> </option> <?php if(!empty($rowsallPro)) { foreach($rowsallPro as $rowPro){?> <option value="<?php echo $rowPro['titreProgramme'];?>"> <?php echo $rowPro['titreProgramme']; ?></option> <?php } } ?> </select> <br> <select class="form-select" name="lieu" aria-label="Default select example" required> <option disabled selected> <b>Lieu :</b> <?php echo $row[0]['lieu'];?> </option> <option value="BAOBAB (Salle de réunion)">BAOBAB (Salle de réunion)</option> <option value="ESAT - Le Port (Grande Salle de Réunion)">ESAT - Le Port (Grande Salle de Réunion)</option> <option value="ESAT - Le Port (Petite Salle de Réunion)">ESAT - Le Port (Petite Salle de Réunion)</option> <option value="ESAT - PRIMA (Salle de Réunion)">ESAT - PRIMA (Salle de Réunion)</option> <option value="ESAT - Saint-Pierre (Salle de Réunion)">ESAT - Saint-Pierre (Salle de Réunion)</option> <option value="FAM (Salle de Réunion)">FAM (Salle de Réunion)</option> <option value="FHTH (Salle de Réunion)">FHTH (Salle de Réunion)</option> <option value="IME - PRIMA (Grande Salle de Réunion)">IME - PRIMA (Grande Salle de Réunion)</option> <option value="IME - PRIMA (Petite Salle de Réunion)">IME - PRIMA (Petite Salle de Réunion)</option> <option value="IMS Champs de Merle (Salle de Réunion)">IMS Champs de Merle (Salle de Réunion)</option> <option value="MAS (Salle de Réunion)">MAS (Salle de Réunion)</option> <option value="POUPONNIERE (Salle de Réunion)">POUPONNIERE (Salle de Réunion)</option> <option value="SAMSAH (Salle de Réunion)">SAMSAH (Salle de Réunion)</option> <option value="SIEGE (Salle de Réunion)">SIEGE (Salle de Réunion)</option> </select><br>
Et dans mon creerForm, j'ai créé deux fonctions edit et update :
public function editForm($id) { $data = null; $query = "SELECT formaID, programme, lieu, formateur, forma_date, forma_heure, forma_minute, nb_place FROM forma WHERE formaID = " . $id; if($sql = $this->conn->query($query)) { while($row = mysqli_fetch_assoc($sql)){ $data[] = $row; } } return $data; } public function updateForm($data) { $query = "UPDATE forma SET programme = '$data[programme]', lieu = '$data[lieu]', formateur = '$data[formateur]', forma_date = '$data[forma_date]', forma_heure = '$data[forma_heure]', forma_minute = '$data[forma_minute]', nb_place = '$data[nb_place]' WHERE formaID = '$data[formaID]' "; if($sql = $this->conn->query($query)) { echo "<div class='card w-25' style='padding:20px;color: #45509E; margin:auto;'> <h5 style='text-align:center'> <i class='fas fa-check-circle'></i> <b>La formation sur le programme <q> ". $data['programme']. " </q> a bien été modifié</b> </h5> <a href='../admin/index_admin.php' style='color:grey;text-align:center'>Retour vers la page d'accueil</a> </div>"; exit(); } else { header("Location: index_admin.php"); } }
A voir également:
- Modifier un formulaire
- Whatsapp formulaire opposition - Guide
- Modifier dns - Guide
- Modifier liste déroulante excel - Guide
- Formulaire de réclamation facebook - Guide
- Modifier story facebook - Guide
5 réponses
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
bonjour,
as-tu ajouté des
où se trouve la définition de ce bouton "modifier"?
as-tu ajouté des
echoà ton code pour t'assurer de bien comprendre comment il se comporte?
où se trouve la définition de ce bouton "modifier"?
chrisCL974
Messages postés
63
Date d'inscription
Statut
Membre
Dernière intervention
1
Dans index_admin.php ;
Bonjour
Au lieu de faire une redirection dans ton else... Affiche les erreurs mysqli.
Tu verras alors que ta requête update contient des erreurs...
Tu ne peux pas écrire des variables de type array directement dedans... Il faut concaténer...
Au lieu de faire une redirection dans ton else... Affiche les erreurs mysqli.
Tu verras alors que ta requête update contient des erreurs...
Tu ne peux pas écrire des variables de type array directement dedans... Il faut concaténer...
SET programme = '".$data[programme]."', lieu = '".$data[lieu]."',
la page continue à se rafraichir sans afficher une erreur
public function editForm($id) { $data = null; $query = "SELECT formaID, programme, lieu, formateur, forma_date, forma_heure, forma_minute, nb_place FROM forma WHERE formaID = " . $id; if($sql = $this->conn->query($query)) { while($row = mysqli_fetch_assoc($sql)){ $data[] = $row; } } return $data; } public function updateForm($data) { $query = "UPDATE forma SET programme = '".$data[programme]."', lieu = '".$data[lieu]."', formateur = '$data[formateur]', forma_date = '$data[forma_date]', forma_heure = '$data[forma_heure]', forma_minute = '$data[forma_minute]', nb_place = '$data[nb_place]' WHERE formaID = '$data[formaID]' "; if($sql = $this->conn->query($query)) { echo "<div class='card w-25' style='padding:20px;color: #45509E; margin:auto;'> <h5 style='text-align:center'> <i class='fas fa-check-circle'></i> <b>La formation sur le programme <q> ". $data['programme']. " </q> a bien été modifié</b> </h5> <a href='../admin/index_admin.php' style='color:grey;text-align:center'>Retour vers la page d'accueil</a> </div>"; exit(); } else { echo_debug($mysqli->error); //header("Location: index_admin.php"); } }
Tu as encore une redirection ... ... il faut vraiement éviter d'en mettre .. surtout quand on est pas capable de comprendre tout seul où se trouvent les éventuelles erreurs...
Donc.. remplace :
par
Avec ça.. tu devrais être capable de trouver par toi même le souci... enfin... j'espère...
Donc.. remplace :
if(isset($_POST['update'])) { if(isset($_POST['programme']) && isset($_POST['lieu']) && isset($_POST['formateur']) && isset($_POST['forma_date']) && isset($_POST['forma_heure']) && isset($_POST['forma_minute']) && isset($_POST['nb_place'])) { $data['formaID'] = $id; $data['programme'] = $_POST['programme']; $data['lieu'] = $_POST['lieu']; $data['formateur'] = $_POST['formateur']; $data['forma_date'] = $_POST['forma_date']; $data['forma_heure'] = $_POST['forma_heure']; $data['forma_minute'] = $_POST['forma_minute']; $data['nb_place'] = $_POST['nb_place']; $update = $creerForm->updateForm($data); } else { header("Location: index_admin.php"); } }
par
if(isset($_POST['update'])) { if(isset($_POST['programme']) && isset($_POST['lieu']) && isset($_POST['formateur']) && isset($_POST['forma_date']) && isset($_POST['forma_heure']) && isset($_POST['forma_minute']) && isset($_POST['nb_place'])) { $data['formaID'] = $id; $data['programme'] = $_POST['programme']; $data['lieu'] = $_POST['lieu']; $data['formateur'] = $_POST['formateur']; $data['forma_date'] = $_POST['forma_date']; $data['forma_heure'] = $_POST['forma_heure']; $data['forma_minute'] = $_POST['forma_minute']; $data['nb_place'] = $_POST['nb_place']; $update = $creerForm->updateForm($data); } else { echo " ERREUR : Au moins un champ n'est pas rempli !!"; var_dump($_POST); // le temps de corriger pour voir le contenu de ta variable $_POST //header("Location: index_admin.php"); } }
Avec ça.. tu devrais être capable de trouver par toi même le souci... enfin... j'espère...
Au niveau des balises <select>, lorsque je modifie juste un de ces select, il affiche qu'au moins un champ n'est pas rempli, quand je modifie les 3 select, c'est là que ça marche mais il crée une nouvelle formation et non pas modifié la formation en question.
pourtant j'ai mit les value pour chaque select pour qu'on ne soit pas obligé de tout modifier.
pourtant j'ai mit les value pour chaque select pour qu'on ne soit pas obligé de tout modifier.
<?php if(isset($_POST['update'])) { if(isset($_POST['programme']) && isset($_POST['lieu']) && isset($_POST['formateur']) && isset($_POST['forma_date']) && isset($_POST['forma_heure']) && isset($_POST['forma_minute']) && isset($_POST['nb_place'])) { $data['formaID'] = $id; $data['programme'] = $_POST['programme']; $data['lieu'] = $_POST['lieu']; $data['formateur'] = $_POST['formateur']; $data['forma_date'] = $_POST['forma_date']; $data['forma_heure'] = $_POST['forma_heure']; $data['forma_minute'] = $_POST['forma_minute']; $data['nb_place'] = $_POST['nb_place']; $update = $creerForm->updateForm($data); echo "<div class='card w-25' style='padding:20px;color: #45509E; margin:auto;'> <h5 style='text-align:center'> <i class='fas fa-check-circle'></i> <b>La formation sur le programme <q> ". $data['programme']. " </q> a bien été modifiée</b> </h5> <a href='../admin/index_admin.php' style='color:grey;text-align:center'>Retour vers la page d'accueil</a> </div>"; } else { echo " ERREUR : Au moins un champ n'est pas rempli !!"; var_dump($_POST); // le temps de corriger pour voir le contenu de ta variable $_POST //header("Location: editForma.php?id=$id"); } } ?> <div class="d-flex justify-content-center" style="margin-bottom:50px"> <?php if(!empty($row)) {?> <div class="container"> <h2 style="color:#45509E;text-align: center;"> <b>Modification de la formation : <br> "<?php echo $row[0]['programme'];?>"</b> </h2> <h4 style="color:grey;text-align: center;"><b> Date : <?php echo $row[0]['forma_date'];?></b></h4> </div> <?php }?> </div> <?php if(!empty($row) AND ($rowsallPro)) {?> <div class="d-flex justify-content-center"> <div class="card" style="width: 500px;"> <div class="card-body"> <div> <form action="" method="post"> <select class="form-select" name="programme" value="<?php echo $row[0]['programme'];?>" aria-label="Default select example" required> <option disabled selected value="<?php echo $row[0]['programme'];?>"> <b>Programme :</b> <?php echo $row[0]['programme'];?> </option> <?php if(!empty($rowsallPro)) { foreach($rowsallPro as $rowPro){?> <option value="<?php echo $rowPro['titreProgramme'];?>"> <?php echo $rowPro['titreProgramme']; ?></option> <?php } } ?> </select> <br> <select class="form-select" name="lieu" value="<?php echo $row[0]['lieu'];?>" aria-label="Default select example" required> <option disabled selected value="<?php echo $row[0]['lieu'];?>"> <b>Lieu :</b> <?php echo $row[0]['lieu'];?> </option> <option value="BAOBAB (Salle de réunion)">BAOBAB (Salle de réunion)</option> <option value="ESAT - Le Port (Grande Salle de Réunion)">ESAT - Le Port (Grande Salle de Réunion)</option> <option value="ESAT - Le Port (Petite Salle de Réunion)">ESAT - Le Port (Petite Salle de Réunion)</option> <option value="ESAT - PRIMA (Salle de Réunion)">ESAT - PRIMA (Salle de Réunion)</option> <option value="ESAT - Saint-Pierre (Salle de Réunion)">ESAT - Saint-Pierre (Salle de Réunion)</option> <option value="FAM (Salle de Réunion)">FAM (Salle de Réunion)</option> <option value="FHTH (Salle de Réunion)">FHTH (Salle de Réunion)</option> <option value="IME - PRIMA (Grande Salle de Réunion)">IME - PRIMA (Grande Salle de Réunion)</option> <option value="IME - PRIMA (Petite Salle de Réunion)">IME - PRIMA (Petite Salle de Réunion)</option> <option value="IMS Champs de Merle (Salle de Réunion)">IMS Champs de Merle (Salle de Réunion)</option> <option value="MAS (Salle de Réunion)">MAS (Salle de Réunion)</option> <option value="POUPONNIERE (Salle de Réunion)">POUPONNIERE (Salle de Réunion)</option> <option value="SAMSAH (Salle de Réunion)">SAMSAH (Salle de Réunion)</option> <option value="SIEGE (Salle de Réunion)">SIEGE (Salle de Réunion)</option> </select><br> <select class="form-select" value="<?php echo $row[0]['formateur']?>" name="formateur" aria-label="Default select example" required> <option disabled selected value="<?php echo $row[0]['formateur']?>"> <b>Formateur :</b> <?php echo $row[0]['formateur']?> </option> <option value="Ludovic BOYER">Ludovic BOYER</option> <option value="Danilla GEORGET">Danilla GEORGET</option> </select><br> <div class="form-floating mb-3"> <input value="<?php echo $row[0]['nb_place']?>" name="nb_place" type="number" class="form-control" id="floatingInput" required> <label for="floatingInput">Nombre de place</label> </div> <div> <input value="<?php echo $row[0]['forma_date']?>" name="forma_date" type="date" class="form-control" id="result" placeholder="Choisir une date" required> <form action="#" class="row"> </div> <br> <div class="row"> <div class="col "> <div class="form-floating mb-3"> <input name="forma_heure" value="<?php echo $row[0]['forma_heure']?>" type="number" class="form-control" id="floatingInput" placeholder="Entrer l'heure" > <label for="floatingInput">Heure : <?php echo $row[0]['forma_heure']?> h</label> <form action="#" class="row"> </div> </div> <div class="col form-floating mb-3"> <div class=" form-floating mb-3"> <input name="forma_minute" value="<?php echo $row[0]['forma_minute']?>" type="number" class="form-control" id="floatingInput" placeholder="Entrer les minutes"> <label for="floatingInput">Minutes : <?php echo $row[0]['forma_minute']?> min</label> <form action="#" class="row"> </div> </div> </div> </div> <div> <div class="d-flex justify-content-center"> <a href="../admin/index_admin.php"> <button type="button" class="btn btn-secondary" onclick="window.location.href='index_admin.php'">Annuler</button> </a> <button type="submit" name="update" class="btn btn-primary">Modifier</button> </div> </div> </form> </div> </div> </div> <br><br><br> <?php } ?>
Je réitère ....
MONTRE NOUS le code de ta fonction updateForm
places-y un var_dump de ta variable data et montre nous ce que ça t'affiche
NB: bien entendu, pour pouvoir voir le résultat du var_dump il faut désactiver tes éventuelles redirections....
NB²: Dans ta précédente question, il me semblait que nous avions remplacé l'utilisation du "nom d'un programme" par son ID pour l'identifier dans la base ..... Visiblement tu n'as pas tenu compte de cette modification...
MONTRE NOUS le code de ta fonction updateForm
$update = $creerForm->updateForm($data);
places-y un var_dump de ta variable data et montre nous ce que ça t'affiche
NB: bien entendu, pour pouvoir voir le résultat du var_dump il faut désactiver tes éventuelles redirections....
NB²: Dans ta précédente question, il me semblait que nous avions remplacé l'utilisation du "nom d'un programme" par son ID pour l'identifier dans la base ..... Visiblement tu n'as pas tenu compte de cette modification...
creerForm.php : où il y a la fonction updateForm
public function updateForm($data) { $query = "UPDATE forma SET programme = '$data[programme]', lieu = '$data[lieu]', formateur = '$data[formateur]', forma_date = '$data[forma_date]', forma_heure = '$data[forma_heure]', forma_minute = '$data[forma_minute]', nb_place = '$data[nb_place]' WHERE formaID = '$data[formaID]'"; if($sql = $this->conn->query($query)) { var_dump($data); /* echo "<div class='card w-25' style='padding:20px;color: #45509E; margin:auto;'> <h5 style='text-align:center'> <i class='fas fa-check-circle'></i> <b>La formation sur le programme <q> ". $data['programme']. " </q> a bien été modifiée</b> </h5> <a href='../admin/index_admin.php' style='color:grey;text-align:center'>Retour vers la page d'accueil</a> </div>"; */ exit(); } else { echo " ERREUR : Au moins un champ n'est pas rempli !"; } }
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
peux-tu montrer le contenu complet de chacun de tes fichiers, en précisant le nom de chaque fichier?
editForma.php :
creerForm.php :
index_admin.php :
header.php :
<?php include "../admin/header.php"; include "../model/creerForm.php"; include "../model/creerProgramme.php"; $creerForm = new creerForm; $creerProgramme = new creerProgramme; $id = $_REQUEST['edit']; $insert = $creerForm->createForm(); $row = $creerForm->editForm($id); $rowsallPro = $creerProgramme->getAllProgramme(); $localhost = "localhost"; $dbusername = "root"; $password = ""; $db = "formation_db"; $conn = mysqli_connect($localhost, $dbusername, $password, $db); ?> <?php var_dump($_POST); if(isset($_POST['update'])) { if(isset($_POST['programme']) && isset($_POST['lieu']) && isset($_POST['formateur']) && isset($_POST['forma_date']) && isset($_POST['forma_heure']) && isset($_POST['forma_minute']) && isset($_POST['nb_place'])) { $data['formaID'] = $id; $data['programme'] = $_POST['programme']; $data['lieu'] = $_POST['lieu']; $data['formateur'] = $_POST['formateur']; $data['forma_date'] = $_POST['forma_date']; $data['forma_heure'] = $_POST['forma_heure']; $data['forma_minute'] = $_POST['forma_minute']; $data['nb_place'] = $_POST['nb_place']; $update = $creerForm->updateForm($data); echo "<div class='card w-25' style='padding:20px;color: #45509E; margin:auto;'> <h5 style='text-align:center'> <i class='fas fa-check-circle'></i> <b>La formation sur le programme <q> ". $data['programme']. " </q> a bien été modifiée</b> </h5> <a href='../admin/index_admin.php' style='color:grey;text-align:center'>Retour vers la page d'accueil</a> </div>"; } else { echo " ERREUR : Au moins un champ n'est pas rempli !!"; var_dump($_POST); // le temps de corriger pour voir le contenu de ta variable $_POST //header("Location: editForma.php?id=$id"); } } ?> <div class="d-flex justify-content-center" style="margin-bottom:50px"> <?php if(!empty($row)) {?> <div class="container"> <h2 style="color:#45509E;text-align: center;"> <b>Modification de la formation : <br> "<?php echo $row[0]['programme'];?>"</b> </h2> <h4 style="color:grey;text-align: center;"><b> Date : <?php echo $row[0]['forma_date'];?></b></h4> </div> <?php }?> </div> <?php if(!empty($row) AND ($rowsallPro)) {?> <div class="d-flex justify-content-center"> <div class="card" style="width: 500px;"> <div class="card-body"> <div> <form action="" method="post"> <select class="form-select" name="programme" value="<?php echo $row[0]['programme'];?>" aria-label="Default select example" required> <option disabled selected value="<?php echo $row[0]['programme'];?>"> <b>Programme :</b> <?php echo $row[0]['programme'];?> </option> <?php if(!empty($rowsallPro)) { foreach($rowsallPro as $rowPro){?> <option value="<?php echo $rowPro['titreProgramme'];?>"> <?php echo $rowPro['titreProgramme']; ?></option> <?php } } ?> </select> <br> <select class="form-select" name="lieu" value="<?php echo $row[0]['lieu'];?>" aria-label="Default select example" required> <option disabled selected value="<?php echo $row[0]['lieu'];?>"> <b>Lieu :</b> <?php echo $row[0]['lieu'];?> </option> <option value="BAOBAB (Salle de réunion)">BAOBAB (Salle de réunion)</option> <option value="ESAT - Le Port (Grande Salle de Réunion)">ESAT - Le Port (Grande Salle de Réunion)</option> <option value="ESAT - Le Port (Petite Salle de Réunion)">ESAT - Le Port (Petite Salle de Réunion)</option> <option value="ESAT - PRIMA (Salle de Réunion)">ESAT - PRIMA (Salle de Réunion)</option> <option value="ESAT - Saint-Pierre (Salle de Réunion)">ESAT - Saint-Pierre (Salle de Réunion)</option> <option value="FAM (Salle de Réunion)">FAM (Salle de Réunion)</option> <option value="FHTH (Salle de Réunion)">FHTH (Salle de Réunion)</option> <option value="IME - PRIMA (Grande Salle de Réunion)">IME - PRIMA (Grande Salle de Réunion)</option> <option value="IME - PRIMA (Petite Salle de Réunion)">IME - PRIMA (Petite Salle de Réunion)</option> <option value="IMS Champs de Merle (Salle de Réunion)">IMS Champs de Merle (Salle de Réunion)</option> <option value="MAS (Salle de Réunion)">MAS (Salle de Réunion)</option> <option value="POUPONNIERE (Salle de Réunion)">POUPONNIERE (Salle de Réunion)</option> <option value="SAMSAH (Salle de Réunion)">SAMSAH (Salle de Réunion)</option> <option value="SIEGE (Salle de Réunion)">SIEGE (Salle de Réunion)</option> </select><br> <select class="form-select" value="<?php echo $row[0]['formateur']?>" name="formateur" aria-label="Default select example" required> <option disabled selected value="<?php echo $row[0]['formateur']?>"> <b>Formateur :</b> <?php echo $row[0]['formateur']?> </option> <option value="Ludovic BOYER">Ludovic BOYER</option> <option value="Danilla GEORGET">Danilla GEORGET</option> </select><br> <div class="form-floating mb-3"> <input value="<?php echo $row[0]['nb_place']?>" name="nb_place" type="number" class="form-control" id="floatingInput" required> <label for="floatingInput">Nombre de place</label> </div> <div> <input value="<?php echo $row[0]['forma_date']?>" name="forma_date" type="date" class="form-control" id="result" placeholder="Choisir une date" required> <form action="#" class="row"> </div> <br> <div class="row"> <div class="col "> <div class="form-floating mb-3"> <input name="forma_heure" value="<?php echo $row[0]['forma_heure']?>" type="number" class="form-control" id="floatingInput" placeholder="Entrer l'heure" > <label for="floatingInput">Heure : <?php echo $row[0]['forma_heure']?> h</label> <form action="#" class="row"> </div> </div> <div class="col form-floating mb-3"> <div class=" form-floating mb-3"> <input name="forma_minute" value="<?php echo $row[0]['forma_minute']?>" type="number" class="form-control" id="floatingInput" placeholder="Entrer les minutes"> <label for="floatingInput">Minutes : <?php echo $row[0]['forma_minute']?> min</label> <form action="#" class="row"> </div> </div> </div> </div> <div> <div class="d-flex justify-content-center"> <a href="../admin/index_admin.php"> <button type="button" class="btn btn-secondary" onclick="window.location.href='index_admin.php'">Annuler</button> </a> <button type="submit" name="update" class="btn btn-primary">Modifier</button> </div> </div> </form> </div> </div> </div> <br><br><br> <?php } ?>
creerForm.php :
<?php //Classe FORMATION class creerForm { private $server = "localhost"; private $username = "root"; private $password = ""; private $db = "formation_db"; private $conn; public function __construct(){ try { $this->conn = new mysqli( $this->server, $this->username, $this->password, $this->db ); } catch(Exception $e) { echo "Erreur de connexion" . $e->getMessage(); } } public function createForm(){ if(isset($_POST['programme']) && isset($_POST['lieu']) && isset($_POST['formateur']) && isset($_POST['nb_place']) && isset($_POST['forma_heure']) & isset($_POST['forma_minute']) && isset($_POST['forma_date'])) { $programme = $_POST['programme']; $lieu = $_POST['lieu']; $formateur = $_POST['formateur']; $nb_place = $_POST['nb_place']; $forma_date = $_POST['forma_date']; $forma_heure = $_POST['forma_heure']; $forma_minute = $_POST['forma_minute']; if(empty($programme)) { header("Location: index_admin.php?error=Nom de la formation requis"); exit(); } else { $query = "INSERT INTO forma (programme, lieu, formateur, forma_heure, forma_minute, forma_date, nb_place) VALUES ('$programme', '$lieu', '$formateur', '$forma_heure', '$forma_minute', '$forma_date', '$nb_place')"; if($sql = $this->conn->query($query)) { echo "<div class='card w-25' style='padding:20px;color: #45509E; margin:auto;'> <h5 style='text-align:center'> <i class='fas fa-check-circle'></i> <b>La formation sur le programme <q> ". $_POST['programme']. " </q> a bien été créée</b></h5> <a href='../admin/index_admin.php' style='color:grey;text-align:center'>Retour vers les programmes</a> </div>"; exit(); } else { header("Location: index_admin.php"); exit(); } } } } public function viewForm($id) { $data = null; $query = "SELECT F.formaID ,F.programme ,F.lieu ,F.formateur ,F.forma_date ,F.forma_heure ,F.forma_minute ,F.nb_place ,P.titreProgramme ,P.sousTitre ,P.descriProgramme ,P.heurePro ,P.minutePro ,P.itemProgramme ,P.modaliteProgramme ,P.imageProgramme FROM forma F LEFT JOIN programme P ON P.titreProgramme = F.programme WHERE formaID = " . $id; if($sql = $this->conn->query($query)) { while($row = mysqli_fetch_assoc($sql)) { $data[] = $row; } } return $data; } public function getAllForm(){ $data = null; $query = "SELECT F.formaID ,F.programme ,F.lieu ,F.formateur ,F.forma_date ,F.forma_heure ,F.forma_minute ,F.nb_place ,P.titreProgramme ,P.sousTitre ,P.descriProgramme ,P.heurePro ,P.minutePro ,P.itemProgramme ,P.modaliteProgramme ,P.imageProgramme FROM forma F LEFT JOIN programme P ON P.titreProgramme = F.programme ORDER BY forma_date ASC"; if($sql = $this->conn->query($query)) { while($row = mysqli_fetch_assoc($sql)) { $data[] = $row; } } return $data; } public function deleteForm($idForm) { $query = "DELETE FROM forma WHERE formaID = " . $idForm; if($sql = $this->conn->query($query)) { header("Location: index_admin.php"); } else { return false; } } public function editForm($id) { $data = null; $query = "SELECT formaID, programme, lieu, formateur, forma_date, forma_heure, forma_minute, nb_place FROM forma WHERE formaID = " . $id; if($sql = $this->conn->query($query)) { while($row = mysqli_fetch_assoc($sql)){ $data[] = $row; } } return $data; } public function updateForm($data) { var_dump($update); $query = "UPDATE forma SET programme = '$data[programme]', lieu = '$data[lieu]', formateur = '$data[formateur]', forma_date = '$data[forma_date]', forma_heure = '$data[forma_heure]', forma_minute = '$data[forma_minute]', nb_place = '$data[nb_place]' WHERE formaID = '$data[formaID]'"; if($sql = $this->conn->query($query)) { echo "<div class='card w-25' style='padding:20px;color: #45509E; margin:auto;'> <h5 style='text-align:center'> <i class='fas fa-check-circle'></i> <b>La formation sur le programme <q> ". $data['programme']. " </q> a bien été modifiée</b> </h5> <a href='../admin/index_admin.php' style='color:grey;text-align:center'>Retour vers la page d'accueil</a> </div>"; exit(); } else { echo " ERREUR : Au moins un champ n'est pas rempldazdazdi !"; } } } ?>
index_admin.php :
<?php include "../admin/header.php"; ?> <div class="container-fluid"> <?php include '../model/creerForm.php'; include '../model/creerProgramme.php'; include '../model/participant.php'; $creerForm = new creerForm; $creerProgramme = new creerProgramme; $participant = new participant; $insert = $creerForm->createForm(); $insertPro = $creerProgramme->createProgramme(); include 'create.php'; $rowsall = $creerForm->getAllForm(); $rowsallPro = $creerProgramme->getAllProgramme(); ?> <div style="margin-bottom: 50px;margin-top:-70px"> <h2 style="color:rgb(40, 87, 216);text-align:center"><b>Les formations créées</b> </h2> <br> <table class="table table-bordered table-striped table-hover"> <thead> <tr style="color:white;background:#45509E;text-align:center"> <th scope="col">Date & Heure</th> <th scope="col">Programme</th> <th scope="col">Durée</th> <th scope="col">Formateur</th> <th scope="col">Lieu</th> <th scope="col">Nombre de place</th> <th scope="col">Participants</th> <th scope="col">Fiche de présence</th> <th scope="col">Feuille d'émergement</th> <th scope="col">Rapport de formation</th> <th scope="col">Actions</th> </tr> </thead> <tbody> <?php if(!empty($rowsall) AND ($rowsallPro)) { foreach($rowsall as $k => $row) { ?> <tr> <th scope="row" style="vertical-align:middle"> <?php echo $row['forma_date'];?> <span class="text-secondary"> à </span> <?php echo $row['forma_heure'] ."h" .$row['forma_minute'];?> </th> <td style="vertical-align:middle"><?php echo $row['programme'];?></td> <td style="text-align:center;vertical-align:middle"><?php echo $row['heurePro']."h ".$row['minutePro'];?></td> <td style="vertical-align:middle"><?php echo $row['formateur'];?></td> <td style="vertical-align:middle"><?php echo $row['lieu'];?></td> <td style="text-align:center;vertical-align:middle"><?php echo $row['nb_place'];?></td> <td style="text-align:center;vertical-align:middle"> <a href="#staticBackdropParticipant"> <button type="button" class="btn btn-secondary" data-bs-toggle="modal" data-bs-target="#staticBackdropParticipant"> <i class="fas fa-eye"></i> </button> </a> </td> <td style="text-align:center;vertical-align:middle"> <a href="../Public/img/fond.jpg" download> <button type="button" class="btn btn-secondary" data-bs-toggle="modal" > <i class="fas fa-download"></i> </button> </a> </td> <form action="" method="post" enctype="multipart/form-data"> <td style="text-align:center;vertical-align:middle"> <div> <input type="file" name="feuilleEmerg" id="real-file" accept="image/png, image/jpeg, image/*,.pdf, image/*,.docx, image/*,.xlm" width="50px" required> <div class="row"> <div class="col"> <button type="submit" name="submitEmerg" class="btn btn-secondary" style="background-color: rgb(97, 133, 233);margin-top: 5px;margin-bottom: 5px;border:none" onmouseover="this.style.background='rgb(110, 120, 200)';this.style.color='white';" onmouseout="this.style.background='rgb(97, 133, 233)';this.style.color='white';">Save</button> </div> </div> </div> </td> </form> <?php $localhost = "localhost"; $dbusername = "root"; $password = ""; $db = "formation_db"; $conn = mysqli_connect($localhost, $dbusername, $password, $db); if(isset($_POST['submitEmerg'])) { $pname = rand(1000, 10000).'-'.$_FILES['feuilleEmerg']['name']; $tname = $_FILES['feuilleEmerg']['tmp_name']; $uploads_dir = '../admin/documents/'; move_uploaded_file($tname, "$uploads_dir.$pname"); $sql = "INSERT INTO docfeuilleemerg(feuilleEmerg) VALUES ('$pname')"; if(mysqli_query($conn, $sql)) { echo "<div class='card w-25' style='padding:20px;color: #45509E; margin:auto;'> <h5 style='text-align:center'> <i class='fas fa-check-circle'></i> <b>Votre feuille d'émergement a bien été enregistré</b></h5> <a href='../admin/index_admin.php' style='color:grey;text-align:center'>Fermer pour actualiser votre page</a> </div> <br><br>"; }else { echo "Erreur"; } } ?> <form action="" method="post" enctype="multipart/form-data"> <td style="text-align:center;vertical-align:middle"> <div> <input type="file" name="rapportFormation" id="real-file" accept="image/png, image/jpeg, image/*,.pdf, image/*,.docx, image/*,.xlm" width="50px" required> <div class="row"> <div class="col"> <button type="submit" name="submitRapport" class="btn btn-secondary" style="background-color: rgb(97, 133, 233);margin-top: 5px;margin-bottom: 5px;border:none" onmouseover="this.style.background='rgb(110, 120, 200)';this.style.color='white';" onmouseout="this.style.background='rgb(97, 133, 233)';this.style.color='white';">Save</button> </div> </div> </div> </td> </form> <?php $localhost = "localhost"; $dbusername = "root"; $password = ""; $db = "formation_db"; $conn = mysqli_connect($localhost, $dbusername, $password, $db); if(isset($_POST['submitRapport'])) { $mname = rand(1000, 10000).'-'.$_FILES['rapportFormation']['name']; $lname = $_FILES['rapportFormation']['tmp_name']; $uploads_dir = '../admin/documents/'; move_uploaded_file($lname, "$uploads_dir.$mname"); $sql = "INSERT INTO docrapportforma(rapportFormation) VALUES ('$mname')"; if(mysqli_query($conn, $sql)) { echo "<div class='card w-25' style='padding:20px;color: #45509E; margin:auto;'> <h5 style='text-align:center'> <i class='fas fa-check-circle'></i> <b>Votre rapport de formation a bien été enregistré</b></h5> <a href='../admin/index_admin.php' style='color:grey;text-align:center'>Fermer pour actualiser votre page</a> </div> <br><br>"; }else { echo "Erreur"; } } ?> <td style="vertical-align:middle"> <div class="col"> <a onclick="return confirm('Voulez-vous vraiment supprimer cette formation?')" href="delete.php?deleteForm=<?php echo $row['formaID']?>" class="text-danger">Supprimer</a> </div> <div class="col"> <a href="editForma.php?edit=<?php echo $row['formaID'];?>" class="text-secondary">Modifier</a> </div> </td> </tr> <?php } }else{?> <aside class='text-center mb-4c'> <h3 >Aucune formation n'a été créé...</h3><br> <img style="width: 300px;" src='../Public/img/empty.svg'> </aside> <br><br> <?php } ?> </tbody> </table> </div> <!-- Modal Participant--> <div class="modal fade" id="staticBackdropParticipant" data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1" aria-labelledby="staticBackdropLabel" aria-hidden="true"> <div class="modal-dialog modal-xl modal-dialog-centered modal-dialog-scrollable"> <div style="margin-top:120px;width:800px" class="modal-content"> <div class="modal-header"> <h5 class="modal-title" id="staticBackdropLabel" style="color:rgb(40, 87, 216);"><b>Liste des Participants</b> </h5> <a href="#"><button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button></a> </div> <div class="modal-body"> <table class="table table-bordered table-striped table-hover"> <thead> <tr style="color:white;background:#45509E;text-align:center"> <th scope="col">Nom</th> <th scope="col">Prénom</th> <th scope="col">Fonction</th> <th scope="col">Service</th> <th scope="col">Programme choisi</th> </tr> </thead> <tbody> <?php if(!empty($rowsallParticipant)) { foreach($rowsallParticipant as $rowParticipant) {?> <tr> <td><?php echo $rowParticipant['nomParticipant']?></td> <td><?php echo $rowParticipant['prenomParticipant']?></td> <td><?php echo $rowParticipant['fonctionParticipant']?></td> <td><?php echo $rowParticipant['serviceParticipant']?></td> <td><?php echo $rowParticipant['programmeChoisi']?></td> </tr> <?php } }else {?> <br> <div style="margin-left:auto;margin-right:auto"> <aside class='text-center mb-4c '> <h3 >Il n'y a personne dans la formation...</h3><br> <img style="width: 300px;" src='../Public/img/empty.svg'> </aside> <br><br> </div> <?php } ?> </tbody> </table> </div> <div class="modal-footer"> <a href="#"><button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Fermer</button></a> </div> </div> </div> </div> <!-- Modal DELETE FORMATION <div class="modal fade" id="staticBackdropSupprimerForma" data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1" aria-labelledby="staticBackdropLabel" aria-hidden="true"> <div class="modal-dialog modal-xl modal-dialog-centered modal-dialog-scrollable"> <div style="margin-top:120px;width:800px" class="modal-content"> <div class="modal-header"> <h5 class="modal-title" id="staticBackdropLabel" style="color:rgb(40, 87, 216);"><b>Voulez-vous vraiment supprimer?</b> </h5> <a href="#"><button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button></a> </div> <div class="modal-footer d-flex justify-content-center"> <a href="#"><button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Annuler</button></a> <a ><button type="button" class="btn btn-danger">Supprimer</button></a> < </div> </div> </div> </div> --> <!-- MODAL EDIT FORMATION <div class="modal fade" id="staticBackdropEditForma" data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1" aria-labelledby="staticBackdropLabel" aria-hidden="true"> <div class="modal-dialog modal-dialog-centered modal-dialog-scrollable"> <div style="margin-top:80px ;" class="modal-content"> <div class="modal-header"> <h5 class="modal-title" style="color:#45509E;" id="staticBackdropLabel"> <b>Modification de la formation</b></h5> <a href="#"><button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button></a> </div> <div class="modal-body"> <form action="" method="post"> <select class="form-select" name="programme" aria-label="Default select example" required> <option disabled selected> <b>Programme :</b> <?php echo $row['programme']?> </option> <option value="Nouveau Salarié">Nouveau Salarié</option> <option value="Office 365">Office 365</option> <option value="DUMS Général">DUMS Général</option> <option value="DUMS PIA">DUMS PIA</option> <option value="DUMS à la demande">DUMS à la demande</option> <option value="Suite Office">Suite Office</option> <option value="Libre Office">Libre Office</option> <option value="Visioconférence">Visioconférence</option> <option value="Formation RSSI">Formation RSSI</option> <option value="PLANNER & SWAY">PLANNER & SWAY</option> <option value="RGPD">RGPD</option> </select> <br> <select class="form-select" name="lieu" aria-label="Default select example" required> <option disabled selected> <b>Lieu :</b> <?php echo $row['lieu']?> </option> <option value="lieu1">1. Nouveau Salarié</option> <option value="lieu2">2. Office 365</option> <option value="lieu3">3. DUMS Général</option> <option value="lieu4">4. DUMS PIA</option> <option value="lieu5">5. DUMS à la demande</option> <option value="lieu6">6. Suite Office</option> <option value="lieu7">7. Libre Office</option> <option value="lieu8">8. Visioconférence</option> <option value="lieu9">9. Formation RSSI</option> <option value="lieu10">10. PLANNER & SWAY</option> <option value="lieu11">11. RGPD</option> </select><br> <select class="form-select" name="formateur" aria-label="Default select example" required> <option disabled selected> <b>Formateur :</b> <?php echo $row['formateur']?> </option> <option value="Ludovic BOYER">Ludovic BOYER</option> <option value="Danilla GEORGET">Danilla GEORGET</option> </select><br> <div class="form-floating mb-3"> <input value="<?php echo $row['nb_place']?>" name="nb_place" type="number" class="form-control" id="floatingInput" required> <label for="floatingInput">Nombre de place</label> </div> <div> <input value="<?php echo $row['forma_date']?>" name="forma_date" type="date" class="form-control" id="result" placeholder="Choisir une date" required> <form action="#" class="row"> </div> <br> <div> <input value="<?php echo $row['forma_time']?>" name="forma_time" type="text" class="form-control" id="result" placeholder="Entrer un horaire (xx h xx)" required> <form action="#" class="row"> </div> <br> </div> <div class="modal-footer"> <div class="d-flex justify-content-center"> <a href="#"> <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Annuler</button> </a> <a href="edit.php?edit=<?php echo $row['formaID'];?>"> <button type="button" name="update" class="btn btn-primary">Modifier</button> </a> </div> </div> </form> </div> </div> </div> --> <script type="text/javascript" src="https://code.jquery.com/jquery-3.6.0.min.js" integrity="sha256-/xUj+3OJU5yExlq6GSYGSHk7tPXikynS7ogEvDej/m4=" crossorigin="anonymous"> </script> <script type="text/javascript" src="../public/js/app.js"></script> </body> </html>
header.php :
<?php session_start(); include "../model/model.php"; ?> <html lang="fr"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Form&nou - Admin Index</title> <!-- CSS only --> <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.0/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-KyZXEAg3QhqLMpG8r+8fhAXLRk2vvoC2f3B09zVXn8CA5QIVfZOJ3BCsw2P0p/We" crossorigin="anonymous"> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous"> <link href='https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css'> <script src='https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.bundle.min.js'></script> <script src='https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js'></script> <script src="https://kit.fontawesome.com/6c1ecc43dd.js" crossorigin="anonymous"></script> <link rel="stylesheet" href="../Public/css/style.css"> <link rel="stylesheet" href="../Public/css/style_admin.css"> <link rel="stylesheet" href="../Public/css/header.css"> <link rel="preconnect" href="https://fonts.googleapis.com"> <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> <link href="https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap" rel="stylesheet"> <link href="https://fonts.googleapis.com/css?family=Roboto:300,400&display=swap" rel="stylesheet"> <link href="https://fonts.googleapis.com/css?family=Poppins:300,400,500&display=swap" rel="stylesheet"> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> <script src="https://cdn.jsdelivr.net/momentjs/2.14.1/moment.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datetimepicker/4.17.37/js/bootstrap-datetimepicker.min.js"> <link rel="stylesheet" href="../fonts/icomoon/style.css"> <link rel="stylesheet" href="../Public/css/rome.css"> <link rel="shortcut icon" type="image/png" href="../Public/img/bg.png"/> <script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datetimepicker/4.17.37/js/bootstrap-datetimepicker.min.js"></script> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datetimepicker/4.17.37/css/bootstrap-datetimepicker.min.css"> </head> <!--BODY --> <body> <!-- Header --> <div class="header__otherpage"> <div class="header__textureAdmin"></div> <div class="container__1"> <div class="header__navbar"> <div class="header__navbar--logo"> <a style="text-decoration:none;color:white" href="https://www.youtube.com/watch?v=I0q6kNC6jqM&ab_channel=wutoji" class="header__navbar--logo-titleAdmin" onmouseover="this.style.color='rgba(255, 255, 255, 0.541)';this.style.transition='all 0.4s';" onmouseout="this.style.color='white';">Form&Nou</a> </div> <div class="header__navbarAdmin--menu"> <a style="text-decoration:none;color:white" href="index_admin.php" class="header__navbar--menu-link"><i class="fas fa-home"></i> Accueil</a> <a style="text-decoration:none;color:white" href="programme.php" class="header__navbar--menu-link">Les Programmes</a> <a style="text-decoration:none;color:white" href="service_admin.php" class="header__navbar--menu-link">Services</a> <a style="text-decoration:none;color:white" href="../logout.php" class="header__navbar--menu-link">Déconnexion</a> </div> <div class="header__navbar-toggleAdmin"> <span class="header__navbar-toggle-iconsAdmin"></span> </div> </div> </div> </div> <br><br> </body> </html>