Enregistrer chaque bouton radio dans un champ de l
Résolu
Sinistrus
Messages postés
1010
Date d'inscription
Statut
Membre
Dernière intervention
-
Sinistrus Messages postés 1010 Date d'inscription Statut Membre Dernière intervention -
Sinistrus Messages postés 1010 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'essaie d'enregistrer chaque bouton radio dans un champ de la table SI celui-ci est activé.
Pouvez-vous me filer un coup de main svp ?
Voici ma page d'accueil :
et ma page de validation :
J'essaie d'enregistrer chaque bouton radio dans un champ de la table SI celui-ci est activé.
Par exemple :
Je coche la valeur "Option 1" et l'édit se fera uniquement dans le champ Vote_01
Je coche la valeur "Option 2" et l'édit se fera uniquement dans le champ Vote_02
Pouvez-vous me filer un coup de main svp ?
Voici ma page d'accueil :
<form action="validation.php" method="POST" name="Form" autocomplete="OFF" enctype="multipart/form-data"> <input type="hidden" name="NumId" value="<?php echo $dataFr['NumId']; ?>" /> <input type="hidden" name="action" value="send" /> <input type="radio" name="Option" id="Fr_Vote_1" value="1"> Option 1 <input type="radio" name="Option" id="Fr_Vote_2" value="1"> option 2 <button>Valider</button> </form>
et ma page de validation :
<?php
$NumId = $_POST["NumId"];
$Fr_Vote_1 = isset($_POST["Fr_Vote_1"]) ? "1" : "0";
$Fr_Vote_2 = isset($_POST["Fr_Vote_2"]) ? "1" : "0";
$req_fr = $pdo->prepare("UPDATE tb_aa_poll SET Vote_01=Vote_01 + :Fr_Vote_1, Vote_02=Vote_02 + :Fr_Vote_1 WHERE NumId = $NumId ");
$req_fr->bindParam(":Fr_Vote_1", $Fr_Vote_1);
$req_fr->bindParam(":Fr_Vote_2", $Fr_Vote_2);
$req_fr->execute();
?>
2 réponses
-
Bonjour,
Ce code-là n'est pas cohérent :
<input type="radio" name="Option" id="Fr_Vote_1" value="1"> Option 1 <input type="radio" name="Option" id="Fr_Vote_2" value="1"> option 2
$Fr_Vote_1 = isset($_POST["Fr_Vote_1"]) ? "1" : "0"; $Fr_Vote_2 = isset($_POST["Fr_Vote_2"]) ? "1" : "0";
En effet, les champs du formulaire sont transmis par leur "name" et pas par leur "id", et c'est le "value" du bouton sélectionné qui est transmis.
Comme tes deux boutons ont le même "value", dans tous les cas tu vas te retrouver avec $_POST['Option'] == 1, ce qui ne te permet pas de savoir quel bouton a été cliqué.
Pour différencier tes deux boutons, c'est le champ "value" qui doit varier, par exemple comme ceci :<input type="radio" name="Option" id="Fr_Vote_1" value="1"> Option 1 <input type="radio" name="Option" id="Fr_Vote_2" value="2"> option 2
$Fr_Vote_1 = isset($_POST['Option']) && $_POST['Option'] == 1 ? "1" : "0"; $Fr_Vote_2 = isset($_POST['Option']) && $_POST['Option'] == 2 ? "1" : "0";
Xavier -
yg_be Messages postés 23437 Date d'inscription Statut Contributeur Dernière intervention Ambassadeur 1 588
bonsoir, bien que tu ne l'écrives pas, je crois deviner que ton code ne fait pas exactement ce que tu souhaites qu'il fasse.
que souhaites-tu changer dans son comportement (que tu ne décris pas)?-
Heuuu... si tu le dis :D
Je souhaite que si<input type="radio" name="Option" id="Fr_Vote_1" value="1">
est cochée, 1 s'accumule à la valeur Vote_01 de la table sinon 1 s'accumule à la valeur Vote_02 de la table.
C'est un système de vote que j'essaie de mettre en place et c'est la seule option qui me manque.$Fr_Vote_1 = isset($_POST["Fr_Vote_1"]) ? "1" : "0";
n'est pas pris en compte, rien ne s'ajoute à ma table.
Donc en récapitulatif, si je choisis<input type="radio" name="Option" id="Fr_Vote_1" value="1">
:
Vote_01 = Vote_01=Vote_01 + :Fr_Vote_1
Si je choisi<input type="radio" name="Option" id="Fr_Vote_2" value="1">
:
Vote_02 = Vote_02=Vote_02 + :Fr_Vote_2
-