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   -
Bonjour,

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();
?>

A voir également:

2 réponses

Reivax962 Messages postés 3672 Date d'inscription   Statut Membre Dernière intervention   1 011
 
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
1
Sinistrus Messages postés 1010 Date d'inscription   Statut Membre Dernière intervention   17
 
Merci beaucoup Xavier, ta réponse a résolu le problème.
Merci à yg_be pour ton aide.
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 
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)? 
0
Sinistrus Messages postés 1010 Date d'inscription   Statut Membre Dernière intervention   17
 
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
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584 > Sinistrus Messages postés 1010 Date d'inscription   Statut Membre Dernière intervention  
 
je pense que ton formulaire est mal conçu. je te suggère de faire
print_r($_POST);
au début de ton php, je pense que cela va t'aider à comprendre ce que tu fais.
0