Bonjour

Voila je rencontre un petit problème avec mon code.

voila mon but est d'avoir un systéme qui rajoute des categorie quand je rajout la categorie cela marche pas de soucis mais quand j'essaie de la modifier j'ai une erreur du type indefined index catgorie sur la ligne 19

<?php require"includes/header.php"; ?>

 <?php require"includes/siderbar.php"; ?>           

        <div id="page-wrapper">
            <div class="row">
                <div class="col-lg-12">
                    <h1 class="page-header">Dashboard</h1>
                </div>
                <!-- /.col-lg-12 -->
            </div>
            <!-- /.row -->
            <div class="row">

                <div class="col-xs-6">

                    <?php if(isset($_POST['submit'])){

                    $the_cat_title = $_POST['catgorie'];

                    if($the_cat_title == "" || empty($the_cat_title)){

                        echo "this filed should not be empty";
                     }   
                    else{

                            // inserer données dans categories
                            $req =$dbh->prepare("INSERT INTO categories(cat_title) VALUE('{$the_cat_title}') ");
                            $req->execute();

                              if(!$req){
                                die('requet echoué');
                              }

                        }
                    } ?>
                    <form action="" method="POST" role="form">

                   <div class="form-group">
                            <label for="">Categories</label>
                            <input type="text" class="form-control" id="" placeholder="" name="catgorie">
                        </div>

                        <button type="submit" class="btn btn-primary" name="submit" value="update">Ajouter Une catgorie</button>
                    </form>
                </div>

                <div class="col-xs-6">
                    <table class="table table-bordered table-hover">
                        <thead>
                            <tr>
                                <th>Id</th>
                                <th>Titre de la categories</th>

                            </tr>
                        </thead>
                            <tbody>

                                <?php 
                                // boucle afin de recuperer les categories
                            $req =$dbh->prepare("SELECT * FROM categories");
                            $req->execute();

                            if(!$req){
                                die('requet echoué');
                            }
                            while($row = $req->fetch(PDO::FETCH_ASSOC)) {
                                $cat_title = $row['cat_title'];
                                $cat_id = $row['cat_id'];
                                echo "<tr>";
                                echo "<td>{$cat_id} </td>";
                                echo "<td>{$cat_title} </td>";
                                echo "<td><a href='categories.php?delete={$cat_id}'>Supprimer</a></td>";
                                echo "<td><a href='categories.php?edit={$cat_id}'>Modifier</a></td>";
                                echo "</tr>";
                        }

                                 ?>

                                    <!-- supprimer la categories depuis l'admin page -->
                                <?php 
                                    if(isset($_GET['delete'])){

                                        $the_cat_id = $_GET['delete'];
                                        $req =$dbh->prepare("DELETE FROM categories WHERE cat_id = {$the_cat_id} ");
                                        $req->execute();
                                        header('Location:categories.php');
                                    }
                                 ?>
                            </tbody>
                    </table>
                </div>
            </div>

            <br>
            <div class="row">

                <div class="col-xs-6">
                    <form action="" method="POST" role="form">
            <div class="form-group">
                            <label for="">Modifier categorie</label>
                            <?php 
                            if(isset($_GET['edit'])){
                            $cat_id = $_GET['edit'];
                            $req =$dbh->prepare("SELECT * FROM categories WHERE cat_id = {$cat_id} ");
                            $req->execute();
                            while($row = $req->fetch(PDO::FETCH_ASSOC)) {
                                $cat_title = $row['cat_title'];
                                $cat_id = $row['cat_id'];
                            }

                            ?>
                            <input value="<?php if(isset($cat_title)){echo $cat_title;} ?>" type="text" class="form-control" id="" placeholder="Input field" name="cat_title">
                            <?php
                            }
                             ?>

                        </div>

                        <button type="submit" class="btn btn-primary" name="submit">Modifier categorie</button>
                    </form>
                </div>
            </div>
        </div>
    <!-- /#wrapper -->

    <!-- jQuery -->
    <script src="../bower_components/jquery/dist/jquery.min.js"></script>

    <!-- Bootstrap Core JavaScript -->
    <script src="../bower_components/bootstrap/dist/js/bootstrap.min.js"></script>

    <!-- Metis Menu Plugin JavaScript -->
    <script src="../bower_components/metisMenu/dist/metisMenu.min.js"></script>

    <!-- Morris Charts JavaScript -->
    <script src="../bower_components/raphael/raphael-min.js"></script>
    <script src="../bower_components/morrisjs/morris.min.js"></script>
    <script src="../js/morris-data.js"></script>

    <!-- Custom Theme JavaScript -->
    <script src="../dist/js/sb-admin-2.js"></script>

</body>

</html>```

alors je voudrai pourvoir modifier la categorie mais malheureusement j'ai cette erreur

6 réponses


Salut,

// ligne 19 :
$the_cat_title = $_POST['catgorie'];

tu as écris "catgorie" (il manque un e)
Ça arrive à tout le monde ^^

Bonjour.
Ton problème, c'est que tu veux traiter deux formulaires différents sur la même page.
Tes deux formulaires ont la même valeur pour l'attribut name des bouton submit (submit), mais comme l'un des deux formulaires n'a pas d'input avec la valeur catgorie de l'attribut name, il ne peut pas l'utiliser pour définir la variable $the_cat_title.

Oh puré... Moi j'ai vu "catgorie", j'ai arrêté de lire direct...

Bien vu Lartak !

codeur13
Auteur

@laratak c'est vrai mes les deux formulaires sont traités differement sur la page

@laratak c'est vrai mes les deux formulaires sont traités differement sur la page

Non pas exactement, car lorsque tu fais la vérification sur $_POST['submit'], pour la condition suivante tu ne vérifies pas si la clé catgorie existe bien dans la variable $_POST.
Et comme $_POST['catgorie'] n'existe pas lors de la soumission de ton formulaire pour l'update, il te retourne l'erreur.
Pour information $the_cat_title == "" || empty($the_cat_title), c'est exactement la même chose, tu vérifies dans les deux cas si la variable est vide.
Il te faut donc faire quelque chose comme :


if(isset($_POST['catgorie'])) {

    $the_cat_title = $_POST['catgorie'];

    if(empty($the_cat_title)){
         echo "this filed should not be empty";
    } else {
         /* suite du code dans le cas contraire */
    }
}
/* la suite de ton code */
codeur13
Auteur

ok j'ai compris