Probleme input type button pour insertion BDD

Petit nouveau ! | 1 Messages

10 sept. 2021, 22:29

Bonjour a tous

Je bloque depuis quelques jours sur mon projet et j'espère avoir une aide :)

Je fais un site web pour une aide sur un jeu android.

Le principe est simple : il y a des célébrités qui ont des plats favoris. Tant qu'on les découvre pas ils restent masqués.

Mon but est d'afficher tous les plats et lorsqu'on a proposé les plats aux célébrités, à l'aide des boutons radios mettre à jour la BDD afin que lorsque l'utilisateur revient, il sait quel plat il a testé ou pas.

Pour cela j'ai créé une table :

- "user"

- "célébrité"

- "catégorie de plat"

- "plats"

- "plats trouvés" afin de lier la table "célébrité" avec "plats"

J'ai essayé 2 méthodes :

- soit j'affiche les plats par catégorie avec un bouton submit pour valider

---> Problème mes boutons radios fonctionnent mal : par exemple je ne peux pas cocher le bouton de chaque plat. Je ne peux que cocher le bouton d'un plat


- soit j'affiche les plats par catégories avec un bouton submit pour chaque plat afin de mettre à jour la bdd au fur et a mesure

---> Problème rencontré : lors de mon insertion dans la bdd, il m'inscrit à chaque fois le dernier plat. Peut importe le plat choisi


A votre avis, quelle est la meilleure solution?

Et enfin pouvez vous me dire d'ou vient l'erreur?

Voici le code de ma page :

Code : Tout sélectionner

<?php require 'inc/request.php'; ?> <section class="find-dishes"> <aside> <img src="<?=$dir_img_celebrities.$mademoiselle->celebrity_root.$ext_img?>" alt="<?= $mademoiselle->celebrity_name?>"> <img class="favorite-dishes1" src="<?=$dir_img_celebrities.$mademoiselle->favorite_dish1.$ext_img?>" alt="Plat Favori" > <img class="favorite-dishes2" src="<?=$dir_img_celebrities.$mademoiselle->favorite_dish2.$ext_img?>" alt="Plat Favori" > <img class="favorite-dishes3" src="<?=$dir_img_celebrities.$mademoiselle->favorite_dish3.$ext_img?>" alt="Plat Favori" > </aside> <article> <h2>Liste des entrées</h2> <form class="list-dishes" method="POST" action=""> <?php foreach ($list_entrees as $entree):?> <div id="<?php echo $entree->id_dish ?> "class="dishes"> <h3><?php echo $entree->dish_name ?></h3> <img src="<?php echo $dir_img_dishes.$list_category[0]->category_name.'/'.$entree->dish_root.$ext_img?>" alt="<?php echo $entree->dish_name?>" > <div class="form-check"> <input class="form-check-input" id="<?php echo $entree->dish_name?>" type="radio" name="choix" value= 'oui'>Oui <label class="form-check-label" for=""></label> <input class="form-check-input" id="<?php echo $entree->dish_name?>" type="radio" name="choix" value= 'non'>Non <label class="form-check-label" for=""></label> <input class="form-check-input" id="<?php echo $entree->dish_name?>" type="radio" name="choix" value='ne_sais_pas' checked>Je ne sais pas <label class="form-check-label" for=""></label> </div> </div> <?php endforeach; ?> <div class="col-12 submit"> <button class="btn btn-primary" type="submit" name="<?php echo $entree->id_dish ?>">Enregistrer</button> </div> </form> <?php if (!empty($_POST)){ var_dump($_POST); $req = $pdo->prepare('INSERT INTO dishes_found SET choix = ? , dish_name = ? , dish_id = ?, celebrity_id = ?'); $req->execute([$choix, $entree->dish_name , $_POST['id'] , $mademoiselle->id_celebrity]); $_SESSION['flash']['success'] = "L'enregistrement a bien été pris en compte"; header('Location: mademoiselle.php'); exit(); } else { $errors['choix'] = "l'enregistrement n'a pas pu etre pris en compte"; }; ?> </article> </section> <?php require 'inc/footer.php';?>