Saisie dans une table impacte les autres tables

Par Zulkar, il y a 8 ans


Bonjour,

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

Dans cette vue, j'importe 3 pages à l'aide des include() : (categories.php, familles.php, unites.php)
Lorsque je valide la saisie d'une entrée dans n'importe quelle table, elle se fait bien ... mais ... ça valide également une saisie "vide" dans les 2 autres tables.
Je ne comprends pas.

Voici le code d'une page, les 2 autres ont le même modèle :

<?php //Pour débogage //echo '<pre>' . print_r($_POST, true) . '</pre>'; die(); // Connexion à la table $categorieTable = App::getInstance()->getTable('Categorie'); if (!empty($_POST)) { // Insertion des données saisies $result = $categorieTable->create([ 'categories' => $_POST['categories'] ]); if ($result) { // Redirection et/ou Message header('Location: index.php?p=params'); } } // Chargement des paramètres du formulaire $form = new \Core\HTML\BootstrapForm($_POST); ?> <div class="col-md-4"> <div class="box box-danger"> <div class="box-header"> <h4 class="box-title">Liste des catégories</h4> </div> <!-- /.box-header --> <div class="box-body"> <table id="categories-table" class="table table-bordered table-striped" width="100%"> <tbody> <?php foreach (App::getInstance()->getTable('Categorie')->all() as $categorie): ?> <tr> <td><?= $categorie->categories; ?></td> <td width="10%"> <form action="index.php?p=categorie.delete" method="post"> <input type="hidden" name="id" value="<?= $categorie->id ?>"> <button type="submit" class="btn btn-xs btn-default"><span class="glyphicon glyphicon-trash"></span></button> </form> </td> </tr> <?php endforeach; ?> </tbody> </table> <form action="index.php?p=params" method="post"> <?= $form->input('categories', 'Nouvelle catégorie'); ?> <button type="submit" class="btn btn-block btn-default submit" style="font-size:22px;"><span class="glyphicon glyphicon-ok-sign"></span></button> </form> </div> <!-- /.box-body --> </div> <!-- /.box --> </div>

Pour information, lorsque je décommente le print_r pour les tests, la validation me retourne bien qu'une seule saisie.

Merci pour votre analyse et votre aide.

2 réponses

keulu, il y a 8 ans

essaye de mieux vérifier ce que tu envoie.

if (!empty($_POST) && isset($_POST['categories'])) { // Insertion des données saisies $result = $categorieTable->create([ 'categories' => $_POST['categories'] ]);

le probleme, c'est que t'envoi tout sur index.php, et qu'est ce qu'il fait index.php ? ben si j'ai un truc dans $_POST, c'est que j'ai forcement une catégorie, une famille et des unitées... alors que c'est faux.

Zulkar, il y a 8 ans

Bonsoir,
Je te remercie pour ta contribution et pour la solution.
J'ai donc adapté le 'isset....' sur mes 3 pages et cela fonctionne très bien.

Un grand MERCI !!!