Modification d'un formulaire

Résolu/Fermé
chrisCL974 Messages postés 63 Date d'inscription jeudi 30 septembre 2021 Statut Membre Dernière intervention 25 novembre 2021 - Modifié le 7 oct. 2021 à 12:46
chrisCL974 Messages postés 63 Date d'inscription jeudi 30 septembre 2021 Statut Membre Dernière intervention 25 novembre 2021 - 12 oct. 2021 à 11:28
Bonjour, je fais un projet qui consiste à créer des formations (cours) à partir de programmes (matières) créés.
J'aimerai de l'aide au niveau de la modification des formations et des programmes que l'on a créé. Et lorsque je clique sur le bouton de modification, la barre de nav et le titre s'affiche mais pas la partie de modif..

Voici mon code pour le bouton de modification dans mon index.php:
<div class="col">
                        <a href="editForma.php?edit=<?php echo $row['formaID'];?>" class="text-secondary">Modifier</a>
</div>


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'];
$data = $creerForm->editForm($id);
$rowPro = $creerProgramme->editProgramme($id);
$localhost = "localhost";
$dbusername = "root";
$password = "";
$db = "formation_db";
$conn = mysqli_connect($localhost, $dbusername, $password, $db);


if(isset($_POST['update'])) {
    if(isset($_POST['programme']) && isset($_POST['lieu']) && isset($_POST['formateur']) && isset($_POST['forma_date']) && isset($_POST['forma_time']) && 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_time'] = $_POST['forma_time'];
        $data['nb_place'] = $_POST['nb_place'];
    
        $update = $model->updateForm($data);        
    } 
    else {
        header("Location: editForma.php?id=$id");
    }
} ?>

<div class="d-flex justify-content-center" style="margin-bottom:50px">
    <h2 style="color:#45509E;">
    <b>Modification de la formation</b></h2>
</div>

        <?php
        if(!empty($rowsall) AND ($rowsallPro)) {
            foreach($rowsall as $k => $row) {?>

    <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 ($data[0]['programme'])?>
                                </option>
                                <?php if(!empty($rowsallPro)) {
                                    foreach($rowsallPro as $rowPro){?>
                                    <option value="<?php echo ($data[0]['titreProgramme']);?>"><?php echo ($data[0]['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 ($data[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" name="formateur" aria-label="Default select example" required>
                                <option disabled selected>
                                    <b>Formateur :</b>  <?php echo ($data[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 ($data[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 ($data[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>
                                <input value="<?php echo ($data[0]['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>
                            <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>

       

    <?php }
}
?>


Ma fonction update pour modifier et mettre à jour la formation sélectionnée:
public function updateForm($data) {
            $query = "UPDATE forma SET programme = '$data[programme]',
            lieu = '$data[lieu]', 
            formateur = '$data[formateur]', 
            forma_date = '$data[forma_date]', 
            forma_time = '$data[forma_time]', 
            nb_place = '$data[nb_place]' 
            WHERE formaID = '$data[formaID]'";

            if($sql = $this->conn->query($query)) {
                header("Location: index_admin.php");
            } else {
                header("Location: index_admin.php");
            }
    
        }
A voir également:

4 réponses

jordane45 Messages postés 38241 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 septembre 2024 4 689
7 oct. 2021 à 13:22
Bonjour
if(!empty($rowsall

Et d'où vient ta variable $rowsall ??
0
chrisCL974 Messages postés 63 Date d'inscription jeudi 30 septembre 2021 Statut Membre Dernière intervention 25 novembre 2021 1
Modifié le 7 oct. 2021 à 13:44
<?php 
include "../admin/header.php";
include "../model/creerForm.php";
include "../model/creerProgramme.php";
$creerForm = new creerForm;
$creerProgramme = new creerProgramme;
$id = $_REQUEST['edit'];
$data = $creerForm->editForm($id);
$rowPro = $creerProgramme->editProgramme($id);
$rowsall = $creerForm->getAllForm();
$rowsallPro = $creerProgramme->getAllProgramme();
$localhost = "localhost";
$dbusername = "root";
$password = "";
$db = "formation_db";
$conn = mysqli_connect($localhost, $dbusername, $password, $db);


if(isset($_POST['update'])) {
    if(isset($_POST['programme']) && isset($_POST['lieu']) && isset($_POST['formateur']) && isset($_POST['forma_date']) && isset($_POST['forma_time']) && 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_time'] = $_POST['forma_time'];
        $data['nb_place'] = $_POST['nb_place'];
    
        $update = $model->updateForm($data);        
    } 
    else {
        header("Location: editForma.php?id=$id");
    }
} ?>

<div class="d-flex justify-content-center" style="margin-bottom:50px">
    <h2 style="color:#45509E;">
    <b>Modification de la formation</b></h2>
</div>

        <?php
        if(!empty($rowsall) 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 $rowsall['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 $rowsall['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" name="formateur" aria-label="Default select example" required>
                                <option disabled selected>
                                    <b>Formateur :</b>  <?php echo $rowsall['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 $rowsall['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 $rowsall['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 $rowsall['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>
                            <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>

       

    <?php 
}
?>


j'ai modifié dans le editForma.php pour la partie modification
0
jordane45 Messages postés 38241 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 septembre 2024 4 689
7 oct. 2021 à 19:11
Et donc, tu as toujours le même souci ?
As-tu vérifiée ce que contiennent tes variables ? À l'aide d'un var_dump
0
chrisCL974 Messages postés 63 Date d'inscription jeudi 30 septembre 2021 Statut Membre Dernière intervention 25 novembre 2021 1 > jordane45 Messages postés 38241 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 septembre 2024
8 oct. 2021 à 06:24
Bonjour, oui avec var_dump il affiche les données sur les formations créées
0
chrisCL974 Messages postés 63 Date d'inscription jeudi 30 septembre 2021 Statut Membre Dernière intervention 25 novembre 2021 1 > chrisCL974 Messages postés 63 Date d'inscription jeudi 30 septembre 2021 Statut Membre Dernière intervention 25 novembre 2021
8 oct. 2021 à 06:43
Et là il me dit que les noms ne sont pas définis pourtant j'ai inclus les données des formations
0
jordane45 Messages postés 38241 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 septembre 2024 4 689 > chrisCL974 Messages postés 63 Date d'inscription jeudi 30 septembre 2021 Statut Membre Dernière intervention 25 novembre 2021
8 oct. 2021 à 07:08
Pourrais tu nous montree le contenu des var_dump ??
0
chrisCL974 Messages postés 63 Date d'inscription jeudi 30 septembre 2021 Statut Membre Dernière intervention 25 novembre 2021 1
8 oct. 2021 à 07:10


Et j'ai un peu modifier le 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);
$rowsall = $creerForm->viewForm($id);
$rowsallPro = $creerProgramme->getAllProgramme();
$localhost = "localhost";
$dbusername = "root";
$password = "";
$db = "formation_db";
$conn = mysqli_connect($localhost, $dbusername, $password, $db);


if(isset($_POST['update'])) {
    if(isset($_POST['programme']) && isset($_POST['lieu']) && isset($_POST['formateur']) && isset($_POST['forma_date']) && isset($_POST['forma_time']) && 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_time'] = $_POST['forma_time'];
        $data['nb_place'] = $_POST['nb_place'];
    
        $update = $creerForm->updateForm($data);        
    } 
    else {
        header("Location: editForma.php?id=$id");
    }
} ?>

<div class="d-flex justify-content-center" style="margin-bottom:50px">
    <h2 style="color:#45509E;">
    <b>Modification de la formation <?php echo $row['programme'];?></b></h2>
</div>

        <?php
        if(!empty($row) AND ($rowsallPro) AND ($rowsall)) {
            var_dump($row)?>

    <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['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['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" 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>
                            <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 
}
?>
0
jordane45 Messages postés 38241 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 septembre 2024 4 689
8 oct. 2021 à 07:14
Et avec ce nouveau code tu as toujours les mêmes erreurs a la ligne 94 ?
0
chrisCL974 Messages postés 63 Date d'inscription jeudi 30 septembre 2021 Statut Membre Dernière intervention 25 novembre 2021 1 > jordane45 Messages postés 38241 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 septembre 2024
8 oct. 2021 à 07:15
Oui, il refuse d'afficher les données qu'on a entré
0
jordane45 Messages postés 38241 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 septembre 2024 4 689 > chrisCL974 Messages postés 63 Date d'inscription jeudi 30 septembre 2021 Statut Membre Dernière intervention 25 novembre 2021
12 oct. 2021 à 09:44
Si tu regardes bien ton var_dump, tu vois que c'est un array d'array ....
Les données ne se trouvent pas directement dans $row ... mais dans $row[0]

Par exemple, pour avoir le programme
        <b>Programme :</b>  <?php echo $row[0]['programme'];?>
0
chrisCL974 Messages postés 63 Date d'inscription jeudi 30 septembre 2021 Statut Membre Dernière intervention 25 novembre 2021 1 > jordane45 Messages postés 38241 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 septembre 2024
12 oct. 2021 à 10:20
ça s'affiche, mais ça ne veut pas modifier la formation


<?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é</b>
                </h5>
                <a href='../admin/index_admin.php' style='color:grey;text-align:center'>Retour vers la page d'accueil</a>
            </div>";    
    } else {
        header("Location : index_admin.php");
    }
 
} ?>
0
jordane45 Messages postés 38241 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 septembre 2024 4 689 > chrisCL974 Messages postés 63 Date d'inscription jeudi 30 septembre 2021 Statut Membre Dernière intervention 25 novembre 2021
12 oct. 2021 à 11:12
Tu ne peux pas utiliser l'instruction header si il y a déjà des choses affichées dans la page avant...
Je pense que tu dois avoir, dans tes includes, du code html, des echo ou des var_dump ... qui bloquent l'utilisation de ton instruction header.
mais là .. c'est un autre problème.
Le souci de la présente discussion est traité... il serait bien de mettre le sujet en RESOLU et d'ouvrir, si besoin, une nouvelle question sur le forum concernant ce "nouveau" souci.
0
chrisCL974 Messages postés 63 Date d'inscription jeudi 30 septembre 2021 Statut Membre Dernière intervention 25 novembre 2021 1
12 oct. 2021 à 09:03
Quelqu'un pourrait m'aider svp?
0