Page 1 sur 2

valider deux bouton radio

Posté : 28 sept. 2005, 14:43
par seayoung
bonjour tout le monde.
Voila j'ai un formulaire du type :

Code : Tout sélectionner

<form method="get" action="radio.html"> <input type="radio" value="oui" name="test" /> <input type="radio" value="non" name="test" /> <!-- ici il y a plein de chose écrite --> <input type="radio" value="oui" name="test" /> <input type="radio" value="non" name="test" /> <input type="submit" name="ok"> </form>
comme la page est très longue, les boutons radio se trouvant à la fin de la page sont pas visible tout de suite ( faut scroller fort ;) ).
Alors je voudrai faire apparaitre les boutons également au début.
Mais il faut que si l utilisateur sélectionne "oui" au début cela valide le "oui" de la fin et inversement pour le "non" .

Si quelqu'un a une solution ( je pense que c'est pas tres compliqué en javascript mais comme je suis pas tres bon ...)

En espérant avoir été assez clair, dans le cas contraire n'hesitez pas a me faire signe
Merci d'avance

Posté : 28 sept. 2005, 15:07
par heddicmi
Totu d'abord, il faudra donner un nom différent aux deux blocs (un pour le haut, un pour le bas)... Car l'intérêt du bouton radio est la gestion de l'objet sélectionné sur tous le groupe...

Ensuite, tu rajoutes à chaque radio un propriété onClick qui modifie la valeur de l'autre groupe...

Donc si tu cliques sur oui dans le bloc du haut (test1) :
(X) Oui
( ) Non

Alors dans le bloc du bas (test2) tu passes à oui...

Donc, tu dois glisser un truc dans ce genre : test2[0].checked=true dans le onClick du radio correspondant à oui sur test1...
0 correspond à ton 1er radio par ordre de saisie, 1 au second...

Si ce n'est pas assez expicite, je comprendrais :lol:

Re: valider deux bouton radio

Posté : 28 sept. 2005, 15:42
par pjl
comme la page est très longue, les boutons radio se trouvant à la fin de la page sont pas visible tout de suite ( faut scroller fort ;) ).
Alors je voudrai faire apparaitre les boutons également au début.
Là, c'est un problème d'érgonomie ou d'usabilité, rien à voir avec le javascript, l'HTML ou le PHP.

Si ton formulaire est trop long, coupe le en 2 pages ou simplifie le.
Ce qui est clair, c'est que ce n'est pas en mettant 2 fois la même chose qu'il sera plus facile à utiliser (ou plus court).

Posté : 28 sept. 2005, 15:50
par seayoung
Là, c'est un problème d'érgonomie ou d'usabilité, rien à voir avec le javascript, l'HTML ou le PHP.

Si ton formulaire est trop long, coupe le en 2 pages ou simplifie le.
il existe des choses comme les mentions légales que tu dois mettre dans l'intégralité et en rêgle générale l'ergonomie les juristes s'en moquent pas mal ...
d'où la page très longue :wink:

merci pour ton aide heddicmi je vais voir ce que ca donne mais j ai tenter un truc de ce genre et ca donnait pas ce que je veux voici le js que j ai tenter de pondre :oops:

Code : Tout sélectionner

function setChecked() { test = unescape(params["test"]); if (test == "oui") { if (document.f.test[0].checked) { document.f.test2[0].checked; } } }
bon il s'agit que d une partie mais comme je te dis suis nul en js ... si tu pouvais etre plus explicite ca serai le top merci encore :wink:

Posté : 28 sept. 2005, 15:54
par heddicmi
A c'est pour ça :p

En rêgle générale, il faut lire les mentions légales avant de choisir (SISI ! :sleeping: ) si on accepte ou non, donc y a pas intérêt pour un choix en haut :wink:

Posté : 28 sept. 2005, 17:28
par seayoung
dans ce cas précis si :wink: enfin je ne vait pas déblatérer sur les pb de service car je crois que bcp de personne vont lacher l'histoire ....

Posté : 28 sept. 2005, 17:29
par heddicmi
C'est fort possible :roll:

Tu as avancé alors ?

Posté : 29 sept. 2005, 14:32
par seayoung
ba pas trop :roll: j ai eu une urgence ... je m'y remet là :wink:
je te tiend au courant.
toutefois j ai tenter ton process et ca a pas l air de marcher top ...
je regarde plus a fond et j envoie le code :D

Posté : 29 sept. 2005, 15:39
par seayoung
voila ca marche !!!! c était simple au fait

Code : Tout sélectionner

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>Document sans nom</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <script type="text/javascript"> function setChecked1() { if (document.f.test[0].checked == true) { document.f.test2[0].checked = true; document.f.test2[1].checked = false; document.f.test[1].checked = false; } if (document.f.test[1].checked == true) { document.f.test2[1].checked = true; document.f.test[0].checked = false; document.f.test2[0].checked = false; } } function setChecked2() { if (document.f.test2[0].checked == true) { document.f.test[0].checked = true; document.f.test2[1].checked = false; document.f.test[1].checked = false; } if (document.f.test2[1].checked == true) { document.f.test[1].checked = true; document.f.test[0].checked = false; document.f.test2[0].checked = false; } } </script> </head> <body> <form method="get" action="ma_page.html" name="f"> <input type="radio" value="oui" name="test" onClick="setChecked1(this);" /> <input type="radio" value="non" name="test" onClick="setChecked1(this);" /> <br /> <input type="radio" value="oui" name="test2" onClick="setChecked2(this);" /> <input type="radio" value="non" name="test2" onClick="setChecked2(this);" /> <input type="submit" name="ok"> </form> </body> </html>
Bon ok c'est pas le plus beau code que j ai mis en place mais ca tourne.

toutefois maintenant je veux que mon formulaire est le meme nom ... là un problème car je me suis dit simple tu gardes les meme fonctions javascript sauf que tu change les indices des tableaux. mais élas ca clique bien l'autre bouton radio mais pas le bouton radio cliquer ...
si vous avez une solution ... une bidouille ... merci

Posté : 29 sept. 2005, 16:17
par Truc
SAlut, deja il y a possibilité d'alléger considérablement le javascript:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Document sans nom</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script type="text/javascript">
function setChecked_non()
{       
    document.f.test2[1].checked = true;
	document.f.test[1].checked = true;
}


function setChecked_oui()
{   	
    document.f.test2[0].checked = true;
	document.f.test[0].checked = true;
}

</script>
</head>
<body>
<form method="get" action="ma_page.html" name="f">
   oui<input type="radio" value="oui"  name="test" onClick="setChecked_oui(this);" >
   non<input type="radio" value="non"  checked name="test" onClick="setChecked_non(this);" >

<br />   
   
   oui<input type="radio" value="oui" name="test2" onClick="setChecked_oui(this);" >
   non<input type="radio" value="non" checked name="test2" onClick="setChecked_non(this);">   
   <input type="submit" name="ok">

</form>
</body>
</html> 
Par contre j'ai rien compris à ta question :shock:

Posté : 30 sept. 2005, 11:41
par seayoung
en fait voila le nouveau problème :

je voudrai que le nom des bouton radio soit le même mais que lorsque je clique un oui l autre oui soit aussi activé en gros :
oui [x] non[]
oui [x] non[]
mais avoir comme code :

Code : Tout sélectionner

<input type="radio" value="oui" name="test" onClick="setChecked_oui(this);" /> <input type="radio" value="non" checked name="test" onClick="setChecked_non(this);" /> <br /> oui<input type="radio" value="oui" name="test" onClick="setChecked_oui(this);" /> non<input type="radio" value="non" checked name="test" onClick="setChecked_non(this);" /> <input type="submit" name="ok" />
est se possible ?
je pense mais j'y arrive pas ...

Posté : 30 sept. 2005, 19:14
par Truc
Je ne pense pas que ce soit possible de faire ça. On ne peut séléctionner qu'un bouton de type radio dans un meme groupe (donc meme nom) donc c'est imposible.
En meme temps tu cherche la ptit bete là :roll:

Posté : 04 oct. 2005, 15:06
par seayoung
mm oui oui c'est possible que je cherche la petite bète mais bon pour expliquer rapidement :
Si la personne a désactiver le javascript ... fo refaire un test ... donc on essaye d'optimiser mais bon il est vrai qu'une verif c'est rapide ...
enfin je voulais savoir si c'etait possible.

Au fait qq1 a une idée du nombre de personne qui désactive le javascript ?

Posté : 04 oct. 2005, 15:39
par Cyrano
Très peu, ça n'excède pas 10% et encore il faut compter là-dedans les navigateurs texte qui eux même comprennent par exemple les moteurs de recherche. En fin de compte, il reste très peu d'internautes qui les désactivent sauf peut-être dans les entreprises où les machines sont cofigurées par un admin réseau qui aime pas beaucoup devoir faire des remises en état en balladant un cd de Ghost à travers les bureau toute la journée ;)

Posté : 04 oct. 2005, 17:11
par seayoung
Merci cyrano
sans vouloir abuser de ton temps tu aurais un endroit ou je peux voir ces stat ?
car je suis d'acc avec toi que le fénomène est plutot rare mais je voudrai avoir des stat plus ou moins officiel ( s'il y en a) histoire de me rassurer
Merci déjà pour vos nombreuses réponses