Probleme input type button pour insertion BDD
Posté : 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 :
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';?>