2 pièce(s) jointe(s)
Formulaire dynamique et input radio vers ma bdd
Bonjour :)
Je vous explique mon problème (je précise que je débute en php ;) ) :
J'ai une base de données contenant des formations :
Pièce jointe 267784
à partir de celle-ci, je génère un formulaire avec un bouton radio "activé" (qui a une value"oui") et un bouton "désactivé" (qui a une value "non") pour chaque formation.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
|
<form action="" method="post">
<p>
<?php
/* // Mon formulaire généré depuis ma base de données avec les "checked" reliés à la base de données */
$radio[] = array();
try
{
$bdd = new PDO('mysql:host=localhost;dbname=autoform;charset=utf8', 'root', '');
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
}
$reponse = $bdd->query('SELECT * FROM formations');
while ($donnees = $reponse->fetch())
{
?>
<?php $radio[$donnees['forma_ID']] = $donnees['forma_ID'] ?>
<section">
<div>
<a href="no-sidebar.html"></a>
<div>
<p><strong><?php echo $donnees['nom_form']; ?></strong><br/>
<input type="radio" name="<?php echo 'radio['.$donnees['forma_ID'].']'; ?>" value="oui"
<?php if($donnees['active'] == "oui"){echo 'checked';}else{echo "";} ?>>Activé
<input type="radio" name="<?php echo 'radio['.$donnees['forma_ID'].']'; ?>" value="non"
<?php if($donnees['active'] == "non"){echo 'checked';}else{echo "";} ?>>Désactivé
</p>
</div>
</div>
</section>
<?php
}
$reponse->closeCursor();
?>
<input type="submit" value="Envoyer" />
</p>
</form> |
Jusque là tout va bien, voilà le résultat :
Pièce jointe 267795
Là où ça se complique c'est quand je veux modifier la valeur du mon champ "active" via ce formulaire.
Je pense que l'erreur vient de la syntaxe de ma requête mais je n'en suis pas certain.
Voici mon code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
<?php
/* Le traitement du formulaire qui devrait récupérer et UPDATE chaque champs "active" de ma bdd par la value du input radio ("oui" ou "non"). */
try
{
$bdd = new PDO('mysql:host=localhost;dbname=autoform;charset=utf8', 'root', '');
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
}
for ($i = 1; $i <= sizeof($radio); $i++) {
$bdd->exec('UPDATE `formations` SET `active`= "'.$_POST['radio['.$radio[$donnees['forma_ID']].']".'].'" WHERE'.$donnees['forma_ID'].' = '.$i);
}
?> |
Pour info, le name de mes input radio correspondent bien à l'ID de ma formation (radio[1],radio[2], etc...).
Voilà, j'espère que j'ai été claire :/ et que vous pourrez m'aider.
Merci!!!