Checkbox récupérer plusieurs valeurs
Résolu
flo39400
Messages postés
596
Date d'inscription
Statut
Membre
Dernière intervention
-
flo39400 Messages postés 596 Date d'inscription Statut Membre Dernière intervention -
flo39400 Messages postés 596 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai un problème de traitement, quand je coche plusieurs checkbox, je n'est d'un seule choix qui apparait dans la base de données.
Merci d'avance de votre réponse.
J'ai un problème de traitement, quand je coche plusieurs checkbox, je n'est d'un seule choix qui apparait dans la base de données.
<?php session_start(); if(isset($_SESSION['statut']) AND $_SESSION['statut'] != 3) { header('Location: /site/index.php'); } $bdd = new PDO('mysql:host=127.0.0.1;dbname=site;charset=utf8', 'root', ''); if(isset($_POST['envoyer'])) { if(!empty($_POST['titre']) AND !empty($_POST['urlphoto']) AND !empty($_POST['genre']) AND !empty($_POST['synopsis']) AND !empty($_POST['datedesortie'])) { $titre = htmlspecialchars($_POST['titre']); $urlphoto = htmlspecialchars($_POST['urlphoto']); foreach($_POST['genre'] as $genres); $synopsis = htmlspecialchars($_POST['synopsis']); $datedesortie = htmlspecialchars($_POST['datedesortie']); $reqtitrefilm = $bdd->prepare("SELECT * FROM article WHERE titre = ?"); $reqtitrefilm->execute(array($titre)); $filmexist = $reqtitrefilm->rowCount(); if($filmexist == 0) { $inserarticle = $bdd->prepare("INSERT INTO article(titre, photo, genres, synopsis, date, enlignedate) VALUES (?, ?, ?, ?, ?, NOW())"); $inserarticle->execute(array($titre, $urlphoto, $genres, $synopsis, $datedesortie)); } else { $info = 'Ce film est deja present'; } } else { $info = 'Tous les champs doivent être rempli adminitrateur '; } } ?> <!doctype html> <html> <head> <meta charset="UTF-8"> <link rel="stylesheet" href="style.css" /> <title>Administration</title> </head> <body> <h1>Espace Administration membres</h1> <br/> <ul id="menu_horizontal"> <li class="bouton_gauche"><a href="/site/index.php" rel="nofollow noopener noreferrer" target="_blank">Retour vers le site</a></li> <li class="bouton_gauche"><a href="index.php" rel="nofollow noopener noreferrer" target="_blank">Administration membres</a></li> <li class="bouton_gauche"><a href="articles.php" rel="nofollow noopener noreferrer" target="_blank">Administration articles</a></li> <li class="bouton_gauche"><a href="ajouterarticle.php" rel="nofollow noopener noreferrer" target="_blank">Ajouter un article</a></li> <li class="bouton_droite"><a href="deco.php" rel="nofollow noopener noreferrer" target="_blank">Se déconnecter</a></li> </ul> <br/> <br/> <?php if(isset($info)) { echo $info; } ?> <div align="center"> <h2>Article a ajouter :</h2> <form method="POST"> <label for="titre">Titre du film : </label><input type="text" id="titre" name="titre" value="<?php if(isset($titre)) { echo $titre; }?>"/><br/><br/> <label for="urlphoto">Nom de la photo avec l'extention : </label><input type="text" id="urlphoto" name="urlphoto" value="<?php echo 'images/'; if(isset($urlphoto)) { echo $urlphoto; }?>"/><br/><br/> <label>Genres du film :</label><br/><br/> <input type="checkbox" id="Action" name="genre[]" value="Action"><label for="Action">Action</label> <input type="checkbox" id="Annimation" name="genre[]" value="Annimation"><label for="Annimation">Annimation</label> <input type="checkbox" id="Aventure" name="genre[]" value="Aventure"><label for="Aventure">Aventure</label> <input type="checkbox" id="Comedie" name="genre[]" value="Comedie"><label for="Comedie">Comedie</label> <input type="checkbox" id="Fantastique" name="genre[]" value="Fantastique"><label for="Fantastique">Fantastique</label> <input type="checkbox" id="Guerre" name="genre[]" value="Guerre"><label for="Guerre">Guerre</label> <input type="checkbox" id="Horreur" name="genre[]" value="Horreur"><label for="Horreur">Horreur</label> <input type="checkbox" id="Romantique" name="genre[]" value="Romantique"><label for="Romantique">Romantique</label> <input type="checkbox" id="Thriller" name="genre[]" value="Thriller"><label for="Thriller">Thriller</label> <br/> <br/> <label for="synopsis">Ecrire le synopsis :</label><br/> <textarea id="synopsis" name="synopsis" rows="10" cols="100"></textarea><br/><br/> <label for="datedesortie">Date de sortie du film au cinéma : </label><input type="text" id="datedesortie" name="datedesortie" value="<?php if(isset($datedesortie)) { echo $datedesortie; }?>"/><br/><br/> <input type="submit" name="envoyer" value="Envoyer"/> </form> </body> </html>
Merci d'avance de votre réponse.
A voir également:
- Récupérer valeur checkbox php
- Récupérer au terminal de fret - Forum Consommation & Internet
- Recuperer message whatsapp supprimé - Guide
- Récupérer mon compte facebook désactivé - Guide
- Comment récupérer un compte facebook piraté - Guide
- Comment recuperer une video sur youtube - Guide
1 réponse
Tu fais une mauvaise utilisation de la boucle foreach:
Foreach prend un tableau, il va stocker une à une la valeur de chaque clé dans la variable $genre, et exécuté un code, ici il n’exécute rien, et donc la valeur $genre que tu récupères seras toujours la dernière coché.
Remplace cette ligne par ça:
Ça va collé chaque valeur du tableau avec des ";" entre chaque valeur, et donc tu passeras d'un array à un string pouvant être utilisé dans ta requête.
foreach($_POST['genre'] as $genres);
Foreach prend un tableau, il va stocker une à une la valeur de chaque clé dans la variable $genre, et exécuté un code, ici il n’exécute rien, et donc la valeur $genre que tu récupères seras toujours la dernière coché.
Remplace cette ligne par ça:
$genres = implode(';', $_POST['genre']);
Ça va collé chaque valeur du tableau avec des ";" entre chaque valeur, et donc tu passeras d'un array à un string pouvant être utilisé dans ta requête.
Merci bonne soirée !