verifier mon formulaire: erreurs de partout??

choubix
Invité n'ayant pas de compte PHPfrance

15 oct. 2007, 16:21

bonjour,

je me remets a laprogrammation apres avoir bien rouille...

j'ai droits fichiers:
subscribe.php (le formulaire)
subscribe.tpl.php (traitement du formulaire, envoie dans la base de donnees)
check_subscribe.js (javascript qui verifie le formulaire)

j'appelle le javascript dans le formulaire avec une fonction "include" et je verifie le formulaire en utilisant "onSubmit". puis j'envoie le formulaire pour traitement avec "Action"

le probleme est que seuls les 2 premiers champs (gender et fname) sont verifies par le script pour une raison que j'ignore.

par ailleurs lorsque ces 2 champs sont manquants j'ai 2 messages separes qui s'affichent alors que je souhaiterais en avoir un seul qui rappelle que tous les champs sont a remplir (ou alors un seul message qui detaille les chmpas a remplir)

est ce que qq un pourrait me filer un coup de main svp??

je poste le code ici:

Code : Tout sélectionner

<head> <script type='text/javascript'> function checkform(){ // Make quick references to our fields var gender = document.getElementById('gender'); var fname = document.getElementById('fname'); var lname = document.getElementById('lname'); var dob_d = document.getElementById('dob_d'); var dob_m = document.getElementById('dob_m'); var dob_y = document.getElementById('dob_y'); var email = document.getElementById('email'); var pass = document.getElementById('pass'); var zip = document.getElementById('zip'); var country = document.getElementById('country'); //var checkbox = document.getElementById('checkbox'); // Check each input in the order that it appears in the form! if(isEmpty(gender, "Please choose your title")){ if(isAlphabet(fname, "Please enter your first name")){ if(isAlphabet(lname, "Please enter your last name")){ if(isEmpty(dob_d, "Please enter your date of birth")){ if(isEmpty(dob_m, "Please enter your date of birth")){ if(isEmpty(dob_y, "Please enter your date of birth")){ if(emailValidator(email, "Please enter a valid email address")){ if(isAlphanumeric(pass, "Please enter a password")){ if(isEmpty(zip, "Please enter a valid zip code")){ if(madeSelection(country, "Please Choose a Country")){ //if(lengthRestriction(pass, 6, 8)){ return true; }}}}}}}}}} return false; } function isEmpty(elem, helperMsg){ if(elem.value.length == 0){ alert(helperMsg); elem.focus(); // set the focus to this input return true; } return false; } function isNumeric(elem, helperMsg){ var numericExpression = /^[0-9]+$/; if(elem.value.match(numericExpression)){ return true; }else{ alert(helperMsg); elem.focus(); return false; } } function isAlphabet(elem, helperMsg){ var alphaExp = /^[a-zA-Z]+$/; if(elem.value.match(alphaExp)){ return true; }else{ alert(helperMsg); elem.focus(); return false; } } function isAlphanumeric(elem, helperMsg){ var alphaExp = /^[0-9a-zA-Z]+$/; if(elem.value.match(alphaExp)){ return true; }else{ alert(helperMsg); elem.focus(); return false; } } function lengthRestriction(elem, min, max){ var uInput = elem.value; if(uInput.length >= min && uInput.length <= max){ return true; }else{ alert("Please enter between " +min+ " and " +max+ " characters"); elem.focus(); return false; } } function madeSelection(elem, helperMsg){ if(elem.value == "Please Choose"){ alert(helperMsg); elem.focus(); return false; }else{ return true; } } function emailValidator(elem, helperMsg){ var emailExp = /^[\w\-\.\+]+\@[a-zA-Z0-9\.\-]+\.[a-zA-z0-9]{2,4}$/; if(elem.value.match(emailExp)){ return true; }else{ alert(helperMsg); elem.focus(); return false; } } </script> </head>

merci! :)

choubix
Invité n'ayant pas de compte PHPfrance

15 oct. 2007, 16:41

j'oubliais de preciser: quand je ne garde que quelques elements du formulaire a verifier (genre: email, mot de passe, code postal et pays) le formaulaire est valide meme si un des parametres est manquant...

je ne vois pas trop d'ou vient le soucis... :(

merci pour votre coup de main! :)

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

15 oct. 2007, 18:25

tu peux inverser les conditions de tests avec :
if( ! isEmpty(...))

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

choubix
Invité n'ayant pas de compte PHPfrance

15 oct. 2007, 20:22

salut!

merci pour le coup de main. le ! a bien marche pour un des problemes que j'avais mais pas pour tous ;)

j'ai reussi a remettre la main sur un vieux javascript que j'avais en collection et qui marche mieux que celui ci!! :)

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

15 oct. 2007, 20:39

J'ajoute le tag Résolu malgré tout :wink:

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute