Verification d'un bouton radio

Manou
Invité n'ayant pas de compte PHPfrance

06 avr. 2006, 17:01

-> Snoops

J'ai essaye ce code en tenant compte de ta remarque mais ca ne marche pas. Je crois qu'il y a une erreur kelke part. Si quelqu'un peut m'aider a faire fonctionner ce programme :
<html>
<head>
<script language="javascript" type="text/javascript">
function VerifCheck(nom)
{
var champ = document.forms['f'].elements[nom];
for (var i = 0; i < champ.length; i++)
    {
        if (champ.options[i].checked == false)
        {
               alert ('Cochez toutes les cases SVP');
        }
    }
}
</script>
</head>
<body>
<form name="f" method="post" action="page02.php" onsubmit="return VerifCheck(nom);">
<table border="0" align="center" width="75%" cellpadding="15" cellspacing="0"><br>
<tr>
  <td width="162">
  <b>Heureux (se). </b>  </td>
  <td width="35" colpsan="1">
  <input value="1" type="radio" id="m1_1" name="m1" ><label for="m1_1">1</label>
  </td>
  <td width="25" colpsan="1">
  <input value="2" type="radio" id="m1_2" name="m1" ><label for="m1_2">2</label>
  </td>
  <td width="31" colpsan="1">
  <input value="3" type="radio" id="m1_3" name="m1" ><label for="m1_3">3</label>
  </td>
  <td width="20" colpsan="1">
  <input value="4" type="radio" id="m1_4" name="m1" ><label for="m1_4">4</label>
  </td>
  <td width="20" colpsan="1">
  <input value="5" type="radio" id="m1_5" name="m1" ><label for="m1_5">5</label>
  </td>
  <td width="20" colpsan="1">
  <input value="6" type="radio" id="m1_6" name="m1"><label for="m1_6">6</label>
  </td>
  <td width="20" colpsan="1">
  <input value="7" type="radio" id="m1_7" name="m1" ><label for="m1_7">7</label>
  </td>
</tr>
</table>
<br>
<input type="submit" value="Vérifier" onsubmit="VerifCheck(m1);">
</body>
</html>

Eléphant du PHP | 360 Messages

07 avr. 2006, 22:01

Déjà il faut que tu sache que tu ne peut cocher qu'un seul bouton radio par groupe portant le même nom. Ce qui n'est pas clair puisque dans ta fonction JS, si une case n'est pas cochée tu mets une alerte qui spécifie à l'utilisateur de tout cocher... (moi je pensais que tu avais mis des cases à cocher, et non des boutons radio)
De plus pour envoyer vers la fonction JS, ton bouton doit etre de type = "button" si tu le laisse en submit, il soumettra le formulaire sans passer par ta fonction.
Aussi, dans la déclaration de la fonction dans le bouton, tu dois mettre un OnClick et non un OnSubmit, et entre parenthèse spécifier, la valeur que tu veux transmettre à ta fonction, donc dans ton cas se serait plutôt OnClick = "VerifCheck('m1');"
Si tu ne mets pas de simple quote, c'est comme si tu spécifiais une variable (ce qui n'existe pas en html) donc tu ne peux pas mettre juste VerifCheck(nom).
La déclaration ainsi faite, se fait lorsque tu crées la fonction entre les balises <script>...</script>, la tu spécifie le nom de la variable contenant la valeur envoyée par le bouton, soit dans ton cas : m1.
Enfin le OnSubmit que tu as mis dans la balise form ne sert à rien.

Si j'ai dit quelque chose de pas très clair, ou de faux, n'hésitez pas à corriger !

et pour toi Manou, ce serait bien d'expliquer plus clairement ce que tu veux faire, et non ce que tu fais, pour que l'on puisse te guider de facon plus simple, et sans hors sujet.

++

Manou
Invité n'ayant pas de compte PHPfrance

10 avr. 2006, 13:14

- > Snoops

Merci pour ton aide Snoops. Ce que je veux faire c'est que j'ai des lignes qui correspondent a des questions et pour chaque question j'ai un choix a faire entre 7 possibilites et a la fin je dois verifier si l'utilisateur a bien choisi une reponse parmi les 7 pour chaque question. Dans l'exemple, je n'ai donne que 2 questions et un choix a faire parmi 7. Donc je veux faire en sorte que je verifie s'il y a bien choisi une case parmi les 7 et ceci pour un nombre important de questions. Ma question donc est comment le faire de maniere automatique.

Voila le probleme, j'espere qu'il est plus clair maintenant.

Merci a vous!

Invité
Invité n'ayant pas de compte PHPfrance

10 avr. 2006, 23:00

- > Snoops

Merci pour ton aide Snoops. Ce que je veux faire c'est que j'ai des lignes qui correspondent a des questions et pour chaque question j'ai un choix a faire entre 7 possibilites et a la fin je dois verifier si l'utilisateur a bien choisi une reponse parmi les 7 pour chaque question. Dans l'exemple, je n'ai donne que 2 questions et un choix a faire parmi 7. Donc je veux faire en sorte que je verifie s'il y a bien choisi une case parmi les 7 et ceci pour un nombre important de questions. Ma question donc est comment le faire de maniere automatique.

Voila le probleme, j'espere qu'il est plus clair maintenant.

Merci a vous!
Salut,
Je suppose qu'en fait c'est un QCM que tu désire réaliser, nan?
Bien, tu as deux possibilités :
- soit tu as une base de données qui contient toutes tes questions et réponses (ce que j'espère... imagine que tu es 1000 questions et donc 7 fois plus de réponses ...)
- soit tu tapes tout en dur ... (ce que je n'espere pas pour toi)

mais peu importe la solution que tu as choisis, tu peux réaliser ce que tu souhaites.
J'aurais juste une question : affiches tu toutes tes questions sur la même page ?
Si ce n'est pas le cas ca complique un peu ! (et dans ce cas je te dirais comment faire)

( PS : Alors désolé je vais abréger mais je passe mon exam dans un mois et j'ai un mémoire à terminer, donc si tout n'est pas parfait, je m'excuse de ne pas avoir plus de temps à l'avance )

chaque question sera nommée admettons : "question_X" où X est le numéro de la question (commencant a 0), donc chaque bouton radio étant une réponse possible à la question, s'appellera 'reponse_X".

Tu sais que pour chaque question tu as 7 réponses obligatoirement (d'après ce que tu m'as dit), donc il te suffit juste de dire a javascript combien de questions tu as :
- soit tu le mets en dur, mais à chaque fois que ca change tu dois aller modifier le code ...
- soit, et uniquement si tu as une BDD, tu fais une requete qui calcul le nombre de questions que tu as.

A la fin de toutes tes questions tu fais un bouton de "validation" du formulaire les contenant associé à l'évènement onclick qui permettra de faire vérifier par javascript tes boutons :

Code : Tout sélectionner

<input type="button" name="valider" value="Valider" onclick="verifCheck(nb_questions);">
où nb_questions correspondra soit à ta variable créée avec le lien de ta base de données, soit au chiffre que tu mettras en dur entre quotes : 'X'

Enfin tu créer la fonction JS qui vérifiera que toutes les questions ont bien une réponse :

Code : Tout sélectionner

function verifCheck (nb_questions) { var trouve = false; // correspond au booléen qui permettra de savoir si au moins une question n'a pas de réponse var au_moins_une_case_cochee = false; var reponse; var champ = document.forms['f']; var i = 0; var j = 0; while (trouve == false && i < nb_questions) { au_moins_une_case_cochee = false; while (au_moins_une_case_cochee == false && j < 7) { reponse = "reponse_" + j; if (champ.element[reponse].checked == true) { au_moins_une_case_cochee = true; } j++; } if (au_moins_une_case_cochee == false) { trouve = true; question = i + 1; alert ("La question n° " + question + " n'a pas de réponse, veuillez y répondre avant de continuer !"); } i++; } }
Bon voilà normalement ca devrait fonctionner, mais je n'ai pas vérifier, donc si quelque chose ne fonctionne pas ou que tu ne comprends pas, demande j'essayerais de résoudre / expliquer.

Bonne nuit à tous!

Manou
Invité n'ayant pas de compte PHPfrance

12 avr. 2006, 17:21

-> Invité

Merci pour ta reponse. Mais est-il possible dde laisser un type="radio" au lieu de mettre type "buuton" comme tu l'as suggere?