Comment récupérer la valeur d'un bouton radio

Résolu/Fermé
flexi2202 Messages postés 3795 Date d'inscription lundi 14 mars 2011 Statut Membre Dernière intervention 21 avril 2024 - Modifié le 15 août 2022 à 12:22
flexi2202 Messages postés 3795 Date d'inscription lundi 14 mars 2011 Statut Membre Dernière intervention 21 avril 2024 - 15 août 2022 à 15:44

bonjour a tous

je suis encore occupé sur mon bon de commande 

j'ai un petit soucis avec la récupération de la valeur d'un bouton radio

Mon bon de commande fonctionne de la manière suivante j'ai un fichier index.php 

un fichier mail.php qui gère les erreurs , l'envois par mail , et l'enregistrement dans la base de donnee

lors de la validation du formulaire 

j'ai une première vérification pour savoir si il y a des articles dans le panier 

ensuite pour mon test je vérifie si le bouton radio sélectionner est égal a une valeur 

voici l'extrait du code pour la vérification

un truc banal

if ($total_qte_bas == '0')
{  $error = "0-18";}
  
else if  ($promotion == "10"  )
{     $error = "0-20";}

Donc en principe lorsque je lance ma commande vide

La première erreur qui devrait apparaître c est que dans le panier il y a 0 articles 

Mais pour arriver a voir ce message apparaître

je dois sélectionner au moins 1 fois chaque bouton radio 

Ensuite mon premier message d'erreur apparaît  lorsque je valide le formulaire

puis lors de la deuxième validation le deuxième message d'erreur m'indiquant que le bouton radio est sélectionner sur 10

En résumé 

pour que mon code fonctionne je dois appuyer au minimum une fois sur chaque bouton raido

je pense que cela vient de la mauvaise récupération du code pour la récupération de la valeur du bouton 

voici donc les inputs du bouton radio

	 <label><input type="radio" name="promotion" id="black"  data-target="10" value="10" checked /></label>
<label><input type="radio" name="promotion" id="jaune"  data-target="20" value="20" checked /></label>
<label><input type="radio" name="promotion" id="orange"  data-target="30" value="30" checked /></label>
<label><input type="radio" name="promotion" id="red" data-target="40" value="40">j'ai un code</label>
<label><input type="radio" name="promotion" id="red" data-target="50" value="50">j'ai un code</label>

ensuite voici comment je récupère ce bouton 

var promotion = document.querySelector('input[name=promotion]:checked').value;

peut être es ce du au fait que ces boutons ne sont pas dans un form ?

Quoi qu'il en soit pour savoir que je devais cocher au moins sur chaque bouton pour pouvoir accéder aux messages d'erreur aura pris du temps 

Dans ma console pas d'erreur

et je vois bien apparaître le value de chaque bouton avec console.log a chaque choix du bouton  

2 réponses

flexi2202 Messages postés 3795 Date d'inscription lundi 14 mars 2011 Statut Membre Dernière intervention 21 avril 2024 187
15 août 2022 à 15:05

je continue a chercher 

c'est vrai que j'avais une erreur dans mes boutons radios mais cela ne change rien 

<label><input type="radio" name="promotion" id="black"  data-target="10" value="10" checked /></label>
<label><input type="radio" name="promotion" id="jaune"  data-target="20" value="20" /></label>
<label><input type="radio" name="promotion" id="orange"  data-target="30" value="30" /></label>
<label><input type="radio" name="promotion" id="red" data-target="40" value="40">j'ai un code</label>
<label><input type="radio" name="promotion" id="red" data-target="50" value="50">j'ai un code</label>

j'ai remis en place le système d'erreur de jordane sur ma page mail.php

et je vois bien que les données transitent sans aucun soucis 

si je choisis le premier bouton radio j'ai bien 10 dans ma variable promotion 

si je choisis le deuxième bouton j'ai bien 20 et ainsi de suite 

Mais lors de la condition elle n'est pas prise en compte 

1
flexi2202 Messages postés 3795 Date d'inscription lundi 14 mars 2011 Statut Membre Dernière intervention 21 avril 2024 187
15 août 2022 à 15:44

j'ai fini par trouver 

après avoir presque tout recommence

c'était juste une addition de variable

je fessais ceci 

$promodifference = $prix_depart + $promotioncalculs;

et je devais faire ceci

$promodifference = ((int)$prix_depart + (int)$promotioncalculs);
0