Page 1 sur 2
Récupérer valeur d'un bouton radio non coché
Posté : 07 oct. 2005, 17:52
par Domi_d
Bonjour,
Comment faire pour repérer la valeur d'un bouton radio non coché ?
En fait dans mon formulaire, il n'y a qu'un choix possible pour 2 propositions du type :
<input type="radio" name="id1" value="15">Joueur 1<br>
<input type="radio" name="id1" value="321">Joueur 2
Prenons l'exemple que je coche le bouton 'Joueur 1'.
Concraitement, je voudrai faire une mise à jour sur mon enregistrement dont l'id est 321 dans ma table, et effectuer une autre action sur celui coché.
Voyez-vous comment effectuer cette vérification ?
--------------------
Merci d'avance
Posté : 07 oct. 2005, 17:56
par zeus
Après validation de ton formulaire, tu peut récupérer sa valeur dans la superglobale choisie
Par exemple, si tu as fait un formulaire en post, $_POST["id1"] va contenir l'attribut "value" du bouton coché
Ensuite, tu peut récupérer cette valeur et l'insérer dans une requete SQL
$id = $_POST["id1"];
$str_requete = "SELECT * FROM joueurs WHERE identifiant=".$id;
Posté : 07 oct. 2005, 18:10
par Truc
Il me semble qu'il veut la valeur du bouton
NON séléctionné !!
Pour ce faire il faut ajouter un type caché:
<input type="hidden" name="id" value=321>
et la tu peut récupèrer avec $_POST['id'].
La valeur d'un bouton radio n'est retournée que si celui-ci est séléctionné.
Posté : 07 oct. 2005, 20:43
par zeus
Il me semble qu'il veut la valeur du bouton NON séléctionné !!

euuuuuuh, comment dire .....
Je m'a tout tromper de la lecture parce moi pas bien parlé la france
Non, franchement, j'ai mal lu, désolé
Posté : 07 oct. 2005, 21:15
par Truc
Non, franchement, j'ai mal lu, désolé
retrait d'un quota de 300 messages
je vais vite me retrouver à 0 messages moi dans ce cas 
Posté : 08 oct. 2005, 05:54
par jeanpierre949
Bonjour.
Je me permets de rentrer dans ce post pas pour proposer une solution mais pour poser une question .
Je n'ai pas compris ou etait l'interet de recuperer la valeur d'un bouton non coché.
Posté : 08 oct. 2005, 06:01
par DocType
Bonjour.
Je me permets de rentrer dans ce post pas pour proposer une solution mais pour poser une question .
Je n'ai pas compris ou etait l'interet de recuperer la valeur d'un bouton non coché.
+1...
Mais bon, pour son appli ca doit valoir son pesant de cacahuetes

Posté : 08 oct. 2005, 07:05
par stevelace
Ben tu peu pas en fait parce que la valeur envoyé sera celle du radio sélectionné et non le contraire de toute facon tu connais la valeur du radio qui n'est pas sélectionné vu que c toi qui lui attribue cette valeur
donc tu fais comme ceci :
if($_POST['id1']==15)
{
$lautre_valeur = 321 ;
}
else
{
$lautre_valeur = 15 ;
}
Mais par contre je pense aussi qu'il est inutile de récupérer cette valeur vu que le visiteur ne l'a pas choisie

Posté : 08 oct. 2005, 07:49
par Cyrano
Si je peux me permettre une intervention...
La question est peut-être bien incomplète : Comment son initialisées les valeurs des deux boutons radios ? J'ai des raisons de croire que ces valeurs proviennent d'une base de donnée. Nous avons deux joueurs et on doit par exemple cocher celui qui a gagné un match. Il faut donc mettre à jour les deux joueurs. Mais nous avons obtenus les identifiants des deux joueurs dans une requête. Donc nous connaissons au moment de l'affichage les deux identifiants. Il faut donc comme l'a suggéré Truc utiliser des champs cachés : on récupère alors le boutons radio qui a été coché pour le joueur gagnant et le champ caché correspondant au joueur perdant.
Là, il y a deux méthodes :
- SANS JavaScript avec deux champs cachés et AVEC JavaScript avec un seul :
SANS JavaScript, il conviendra de créer une alternative dans le traitement du formulaire pour récupérer le bon champ caché puisque nous en aurons également deux.
- AVEC Javascript, on met un évènement onchange sur les boutons radio de sorte que si je coche le bouton 1, la valeur du bouton 2 alimente la valeur d'un unique champ caché et inversement si je coche le bouton 2

Posté : 08 oct. 2005, 09:56
par jeanpierre949
Mais si on doit mettre a jour les 2 joueurs ou est l'interet de mettre des bouton radio? type text ou hidden pour les 2 auraient été tres bien non? ou je comprends vraiment pas
Posté : 08 oct. 2005, 10:04
par Cyrano
Si tu veux n'enregistrer qu'une victoire ou une défaite, tu n'as que deux valeurs possibles : gagné ou perdu, voire trois en cas de match nul: de toutes façon, c'est un booléen. Donc un type text n'est pas approprié et une case à cocher non plus;
Comme en outre un joueur peu avoir plusieurs matches dont il faut enregistrer les résultats, il faut savoir de quel match il s'agit quand on met à jour. Donc, contre quel joueur il a disputé une partie: on va donc dans le cas proposé afficher les deux joueurs en présence.
Le problème du bouton radio, c'est qu'on ne peut récupérer que les boutons qui sont cochés. Il faut donc pour avoir l'identifiant de l'autre une manière de transmettre la donnée. Un champ de type text risquant de pouboir être modifié à la main n'est pas une bonne idée, et en fait, on a pas besoin d'afficher cette information. Donc le champ caché est le plus adéquat.
Alors en écrivant ça, il me vient aussi une autre option : un champ caché dans lequel en générant le formulaire on indique l'identifiant du match. Donc en récupérant les valeurs du formulaire pour la mise à jour, on peut automatiquement par une requête appropriée faire la mise à jour du joueur non coché grâce à l'identifiant du match disputé. Et dans ce cas, la méthode du champ caché pour mettre l'identifiant non coché devient inutile.
Mais dans tous les cas, on fera appel au champ caché.
Posté : 08 oct. 2005, 11:56
par Truc
re/ autre façon de faire sans champ caché:
<?
$id_joueur1=15;
$id_joueur2=321;
?>
<input type="radio" name="id1" value="<? echo $id_joueur1.','.$id_joueur2 ?>">Joueur 1<br>
<input type="radio" name="id1" value="<? echo $id_joueur2.','.$id_joueur1 ?>">Joueur 2
Ensuite tu récupère avec un explode().
$valeur=$_POST['id1']; // si le 1er bouton est séléctionné alors $valeur="15,321" sinon $valeur="321,15"
$valeur=explode(",",$valeur);
echo $valeur[0]; //si le 1er bouton est séléctionné alors $valeur[0]=15
echo $valeur[1]; //et $valeur[0]=321 ... et inversement
tu sait donc que la valeur de $valeur[0] est l'id du joueur séléctionné et $valeur[1] l'id du joueur non séléctionné
a toi de choisir quelle méthode tu préféres

Posté : 08 oct. 2005, 12:04
par Cyrano
Astucieux =D>
Posté : 08 oct. 2005, 15:14
par jeanpierre949
Ok .
Merci comme ca c'est un plus comprehensible
Posté : 09 oct. 2005, 21:21
par Domi_d
Merci beaucoup truc.
C'est pile poil ce qu'il me faut !
