fonction de vérification de champs d'un formulaire

Mammouth du PHP | 536 Messages

19 juil. 2007, 10:14

Bonjour tout le monde, voilà, j'ai fait une petite fonction qui permet de vérifier que certains champs d'un formulaire on bien été saisi.
Seulement voilà, je n'ai pas de message d'alerte. Pouvez me dire pourquoi car ce code me semble bon et correct.

Code : Tout sélectionner

<script language="JavaScript"> <!-- function Verif() { var msg = ""; // Champ 1 saisi ? if (document.form.used.value.length <= 0) { msg += "\n - le champ 1"; } // Champ 2 saisi ? if (document.form.mark.value.length <= 0) { msg += "\n - le champ 2"; } // Si un problème => message d'erreur if (msg != ""){ msg += alert("Il faut renseigner : " + msg); return false; } else { // tout est bien rempli return true; } } // --> </script> <form name="form" method="post" action="comment.php" id="form" onSubmit="return Verif();"> <input type="hidden" name="form" value="give-opinion" /> <ul class="catalog"> <li> <label class="form-section"><?php echo INFORMATION_ABOUT_USING; ?></label> </li> <li class="left"> <input type="radio" name="used" id="usedY" value="Y">Yes&nbsp;&nbsp; <input type="radio" name="used" id="usedN" value="N">No </li> <li style="padding-top: 5px;"> <label class="form-section"><?php echo NOTATION; ?></label> </li> <li> <label><?php echo GIVE_MARK; ?></label> <input type="radio" name="mark" value="1">1&nbsp;&nbsp; <input type="radio" name="mark" value="2">2&nbsp;&nbsp; <input type="radio" name="mark" value="3">3&nbsp;&nbsp; <input type="radio" name="mark" value="4">4&nbsp;&nbsp; <input type="radio" name="mark" value="5">5&nbsp;&nbsp; </li> </form>
Un prof désespéré à son élève :
- Et maintenant, dessinez-moi un cercle au tableau... Voila... Alors qu'est-ce que c'est?
- Ben un cercle ?
- Non, c'est votre note, sortez !!

ViPHP
ViPHP | 928 Messages

19 juil. 2007, 10:16

Vérifie déjà que verif() est correctement appellée en mettant un alert('toto') au début de ta fonction.

d0m
Mammouth du PHP | 1141 Messages

19 juil. 2007, 10:23

je ne comprends pas bien ta vérification sur les boutons radio :

Code : Tout sélectionner

if (document.form.used.value.length <= 0) if (document.form.mark.value.length <= 0)
normalement le bouton a une position par defaut, il aura donc toujours une valeur.
Y ou N dont la taille sera toujours > 0 nan ?
Je ne vois pas quand attendrais tu un message d'alerte.

Mammouth du PHP | 536 Messages

19 juil. 2007, 10:24

non effectivement, elle n'a pas l'air d'etre appellé puisque rien ne s'est affiché et que alert('toto') a été ignoré. Pourquoi alors ? je ne vois pas où est mon erreur.

a dom-> si aucun bouton n'est checké, alors ce sera vide non ?
Modifié en dernier par béka le 19 juil. 2007, 10:25, modifié 1 fois.
Un prof désespéré à son élève :
- Et maintenant, dessinez-moi un cercle au tableau... Voila... Alors qu'est-ce que c'est?
- Ben un cercle ?
- Non, c'est votre note, sortez !!

ViPHP
ViPHP | 928 Messages

19 juil. 2007, 10:25

Si on avait plus de code sous les yeux on pourrait t'aider, mais je vois pas comment on peut savoir pourquoi ta fonction n'est pas appelée sans le code censé appelé la fonction la fonction.

Elle est appelée via un évènement (onsubmit ?), tu poster le HTML ici ?

Mammouth du PHP | 536 Messages

19 juil. 2007, 10:27

voila tout le code :

Code : Tout sélectionner

?> <script language="JavaScript"> <!-- function Verif() { alert('toto'); var msg = ""; // Champ 1 saisi ? if (document.form.used.value.length <= 0) { msg += "\n - le champ 1"; } // Champ 2 saisi ? if (document.form.mark.value.length <= 0) { msg += "\n - le champ 2"; } // Si un problème => message d'erreur if (msg != ""){ msg += alert("Il faut renseigner : " + msg); return false; } else { // tout est bien rempli return true; } } // --> </script> <form name="form" method="post" action="comment-practice.php" id="form" onSubmit="return Verif();"> <input type="hidden" name="form" value="give-opinion" /> <ul class="catalog"> <li> <label class="form-section"><?php echo INFORMATION_ABOUT_USING; ?></label> </li> <li class="left"> <input type="radio" name="used" id="usedY" value="Y">Yes&nbsp;&nbsp; <input type="radio" name="used" id="usedN" value="N">No </li> <li style="padding-top: 5px;"> <label class="form-section"><?php echo NOTATION; ?></label> </li> <li> <label><?php echo GIVE_MARK; ?></label> <input type="radio" name="mark" value="1">1&nbsp;&nbsp; <input type="radio" name="mark" value="2">2&nbsp;&nbsp; <input type="radio" name="mark" value="3">3&nbsp;&nbsp; <input type="radio" name="mark" value="4">4&nbsp;&nbsp; <input type="radio" name="mark" value="5">5&nbsp;&nbsp; </li> <li style="padding-top: 5px;"> <label class="form-section"><?php echo INFORMATIONS_PRACTICE; ?></label> </li> <li> <label><? echo COMMENT; ?></label> <textarea name="comment" class="editor text" onChange="setModified();"></textarea> </li> <li style="padding-top: 5px;"> <label class="form-section"><? echo REUSABLE; ?></label> </li> <li> <label><?php echo TEXT_REUSABLE; ?></label> <textarea name="reusable" class="text-2lines editor" onChange="setModified();"></textarea> </li> </ul> <div class="btns"> <input type="submit" value="<?php echo SAVE; ?>" class="submit"/> <input type="reset" value="Reset"/> <input type="button" value="<?php echo CLOSE; ?>" onclick="formClose()" /> </div> </form>
Un prof désespéré à son élève :
- Et maintenant, dessinez-moi un cercle au tableau... Voila... Alors qu'est-ce que c'est?
- Ben un cercle ?
- Non, c'est votre note, sortez !!

ViPHP
ViPHP | 928 Messages

19 juil. 2007, 10:30

Chez moi (sous Firefox), la fonction est bien appelée. Essaie de vider ton cache.

Mammouth du PHP | 536 Messages

19 juil. 2007, 10:36

j'utilise aussi firefox et avec firebug j'ai remarqué qu'il me mettait que verif n'était pas défnie.

Dom tu as raison, j'ai modifier ma fonction pour des boutons radio, voilà le nouveau code de cette fonction :

Code : Tout sélectionner

<script language="JavaScript"> <!-- function Verif() { alert('toto'); var msg = ""; // Champ 1 saisi ? if ( (document.form.used[0].checked == 0) && (document.form.used[1].checked == 0) ){ msg += "\n - le champ 1"; } // Champ 2 saisi ? if ( (document.form.mark[0].checked == 0) && (document.form.mark[1].checked == 0)) && (document.form.mark[2].checked == 0)) && (document.form.mark[3].checked == 0)) && (document.form.mark[4].checked == 0) ){ msg += "\n - le champ 2"; } // Si un problème => message d'erreur if (msg != ""){ msg += alert("Il faut renseigner : " + msg); return false; } else { // tout est bien rempli return true; } } // --> </script>

EDIT : c'est bon maintenant, j'ai fait une erreur de débutant :oops: je n'avais pas mis la fonction entre les balises <head> et </head>, j'avais oublié. lol
Un prof désespéré à son élève :
- Et maintenant, dessinez-moi un cercle au tableau... Voila... Alors qu'est-ce que c'est?
- Ben un cercle ?
- Non, c'est votre note, sortez !!

ViPHP
ViPHP | 5924 Messages

19 juil. 2007, 13:32

Bien entendu, une vérification en javascript ne te dispense aucunement d'une vérification en php...