Site web Java(test d un formulaire)

aurna Messages postés 193 Statut Membre -  
 barhoum -
Bonjour,
SVP,je suis en train de faire un site (projet scolaire) en java J2ee. Le site comporte un formuliare à remplir. Je débute en java et j ai besoin de controller le format des données insérees:
D abord que les champs ne soient pas vides,en plus
-Nom / prénom soit un mot ou 2 avec des caractères entre A et Z
- Date de naissance sous le format GG/MM/AA
-format d'une Adresse
- format d'une adresse email.
j ai aussi beson de savoir comment faire dans le cas où il yaurait un champs mal rempli.
je vous remercie s'avance.
A voir également:

10 réponses

Ricky38 Messages postés 5776 Date d'inscription   Statut Contributeur Dernière intervention   1 462
 
Salut,

les profs me font rire ils donnent des travaux scolaire alors que vous n'avez même pas les connaissances ? Ça ne tient pas debout.

D'autre part tu devrais prendre la peine de chercher sur google "formulaire java" ou "vérification de formulaire java" tu vas surement trouver tes réponses au lieu d'avoir des codes tout fait et ne rien apprendre au final.

Cordialement
1
aurna Messages postés 193 Statut Membre 7
 
Merci de ta suggestion. mais avant de poser sur le forum j ai cherché et je n ai trouvé qu en javascript et non en java. ça me suprend enormement mais c vrai.
C est pourquoi je demande.Aussi,j ai bcp à faire pour ce site pour rester bloquer des jours sur un truc fondamental.C un petit truc qui me bloque pourtant les vrais difficultés sont devant. So please Help me!!
0
Vincinho
 
Le mieux pour controler les données est bien Javascript. Tu peux faire un truc dans ce genre :

<script language="Javascript">
function controleFormulaire()
{
var formulaire = document.formulaire
if (formulaire.nom.value.length==0){ -------> controle si champ vide
alert("Vous devez saisir un nom avant d'enregistrer"); --------> envoi un boite d'avertissement
return false;
}else
return true;
}

function CheckDate(d) { ----------> verifie le format date avec la présence des séparateurs
var amin=1900;
var amax=2100;
var separateur="/";
var j=(d.substring(0,2));
var m=(d.substring(3,5));
var a=(d.substring(6,10));
var ok=1;
if ( ((d.substring(2,3)!=separateur)||(d.substring(5,6)!=separateur)) && (ok==1) && (d!="")) {
alert("Les séparateurs doivent être des "+separateur); ok=0;
}
if ( ( (isNaN(j)) || (j<1) || (j>31) ) && (ok==1) && (d!="")) {
alert("Le jour n'est pas correct."); ok=0;
}
if ( ((isNaN(m))||(m<1)||(m>12)) && (ok==1) && (d!="")) {
alert("Le mois n'est pas correct."); ok=0;
}
if ( ((isNaN(a))||(a<amin)||(a>amax)) && (ok==1) && (d!="")) {
alert("L'année n'est pas correcte."); ok=0;
}
return ok;
}
</script>

Ensuite dans le code tu peux rajouter ca pour tes champs date :
<td><input type="text" name="date" onblur = "CheckDate(this.value);" </td>
ca te permettra d'afficher la boite d'avertissement quand l'utilisateur appuira sur TAB.

et bien sur sur ton bouton submit tu met ca :
<input type="submit" name="bouton" value="Enregistrer" onClick="return controleFormulaire();" >

le mieux serait ensuite de controler les données directement dans ta servlet (si tu les utilises).

Voila n'hésites pas a poser des questions !!
0
aurna Messages postés 193 Statut Membre 7
 
Salut, Merci pour ta reponse. Je viens de la lire,je ne l ai pas encore testée. En fait je travaille sous windows avec eclipse, donc je ne sais pas si je peux introduire le code que tu m as donnée dans une classe qui contient du java.En effet j'ai des pages html,et je suis entrain d ecrire des servlets et des jsp. Ce controlle je crois devoir le faire dans une servlet, c est pourquoi je demande si c'est possible.

>et bien sur sur ton bouton submit tu met ca :
><input type="submit" name="bouton" value="Enregistrer" onClick="return controleFormulaire();" >

ok et dans ce cas je dois faire un lien entre onClick et controleFormulaire n'est pas?comment le faire alors puisque je dans le form j'ai mis action= Nomdelaservlet et il trouvera la classe correspondante dans le file web.xml. Je ne sais donc pas si avec le form il trouvera la servlet correspondante et avec onClick il trouvera la methode à employer dans la servlet?

>le mieux serait ensuite de controler les données directement dans ta servlet (si tu les utilises).
Si je comprends bien ,ça rejoint mon praragraphe précédent?

Il me reste peu de temps pour remettre le projet et je n'ai pas encore fait grand chose.
Merci encore
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Vincinho
 
Tout ce qui est entre <script> et </script> tu le place dans le head de ta page html ou JSP contenant ton formulaire. Du coup pas besoin de t'occuper de ta servlet c'est un controle direct depuis la page. Ensuite je te conseille de vérifié directement dans la servlet on ne sais jamais. Par exemple pour etre sur de ne pas rentrer un champ vide tu peux faire :

if(!r.setNomEmploye(request.getParameter("nom")).equalsIgnoreCase(""){ ---> verifie si c'est pas vide.

Si t'as d'autres questions n'hésites pas
0
aurna Messages postés 193 Statut Membre 7
 
Merci beaucoup pour tes reponses. Je me mets au travail et je te fais savoir.
Merci encore!
0
aurna Messages postés 193 Statut Membre 7
 
Salut, j'ai testé mais ça ne fonctionne pas,voici la page html avec les fonctions de verif que tu m'as donnée,je ne sais pas si j'ai fait une erreur mais ça ne fait rien,comme si je n'avais rien ajouté.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
<head>
<title>Bienvenue sur mon site !</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link rel="stylesheet" media="screen" type="text/css" title="Design" href="essai.css" />
<script language="Javascript">
function controleFormulaire()
{
var formulaire = document.formulaire
if (formulaire.Nom.value.length==0){ -------> controle si champ vide
alert("Vous devez saisir un nom avant d'enregistrer"); --------> envoi un boite d'avertissement
return false;
}else
return true;
}
function CheckDate(d)
{ ----------> verifie le format date avec la présence des séparateurs
var amin=1900;
var amax=2100;
var separateur="/";
var j=(d.substring(0,2));
var m=(d.substring(3,5));
var a=(d.substring(6,10));
var ok=1;
if ( ((d.substring(2,3)!=separateur)||(d.substring(5,6)!=separateur)) && (ok==1) && (d!="")) {
alert("Les séparateurs doivent être des "+separateur); ok=0;
}
if ( ( (isNaN(j)) || (j<1) || (j>31) ) && (ok==1) && (d!="")) {
alert("Le jour n'est pas correct."); ok=0;
}
if ( ((isNaN(m))||(m<1)||(m>12)) && (ok==1) && (d!="")) {
alert("Le mois n'est pas correct."); ok=0;
}
if ( ((isNaN(a))||(a<amin)||(a>amax)) && (ok==1) && (d!="")) {
alert("L'année n'est pas correcte."); ok=0;
}
return ok;
}
</script>
</head>
<body>
<div id="menu">

<div class="element_menu">
<ul>
<li><a href="essai.html">Accueil</a></li><br/>
<li><a href="ident.html">Identifiez-vous</a></li><br/>
<li><a href="info.html">Articles et Instructions</a></li>

</ul>
</div>
</div>

<form method="post" action="location.html" name="formulaire" onClick="return controleFormulaire();" >
<h3> Vous etes prié d'entrer vos coordonnées ci dessous. <br/>
si vous n'avez pas encore consulté les instructions et <br/>
lu les informations sur nos articles,nous vous recommandons de le faire.
</h3>
<p>
<label for="name1">Votre Nom :</label>
<input type="text" name="Nom" id="name1" />

<br /><br />
<label for="prenom">Votre Prénom :</label>
<input type="text" name="Prénom" id="prenom" />
<br /><br />
<label for="address">Votre Email :</label>
<input type="text" name="email" id="email" />
<br /><br />
<label for="address">Votre adresse :</label>
<input type="text" name="Adresse" id="address" />
<br /><br />
<label for="birthday">Votre date de naissance :</label>
<input type="text" name="birthday" id="birthday" /><br/><br/>
<td><input type="text" name="date" onblur = "CheckDate(this.value);" </td>
<input type="submit" value="Valider"/><input type="reset" value="effacer" /></br>

</p>
</form>
</body>
</html>
0
zarzisiano Messages postés 7 Statut Membre 12
 
le pbleme est aux niveau de l'evenement onClick.
on fait l'appel au fonction controleFormulaire() si on clique sur le bouton submit.
danc ici, tu doit changer l'emplacemnt de cette fonction
Au lieu de le mettre au niveau de de balise <form>(cé faux),il faux le mettre au balise <input> de bouton submit.

<input type="submit" value="Valider" onClick="controleFormulaire();" />
0
aurna Messages postés 193 Statut Membre 7
 
Salut,
C'est ok,je devais aussi enlever le commentaire. Mais il ya 2 problèmes:
le checkDate ne fonctionne pas,quelque soit ce que je mets comme date ça prend
Quand je ne mets rien sur le nom ça me donne l'alerte après ça me redirige quand meme à la page successive,je ne sais pourquoi.
Une autre question de compréhension STP.Qu'est ce que isNaN?? et subString(2,3) ??
Merci de bien vouloir continuer à m'aider.
0
Vincinho
 
isNaN te permet de vérifier que c'est la chaine ne comporte que des nombres et substring te permet d'extraire une partie d'une chaine substring(0,2) te permet d'avoir les 2 premiers caractères d'une chaine.

Quel format de date utilise tu ? car moi je l'utilisais pour les dates de format jj/mm/aaaa. Si tu en utilises un autre il faut modifier le code mais ca devrait fonctionner ensuite.

Remet un onClick="return controleFormulaire();" a la suite du submit et je vois pas l'utilité de le mettre dans le form mais apres je suis pas specialiste Javascript.

Dis nous ensuite ce que ca te donne
0
aurna Messages postés 193 Statut Membre 7
 
Bonjour,
Merci bien.j'ai pu résoudre le problème grace à ce tuto https://www.toutjavascript.com/savoir/savoir06_3.php3
iil fallait seulement que j'adapte le code que tu m'as donnée à mes exigences. Mais pour la date,mon format c'est JJ/MM/AA ; je n'ai plus essayé car il me reste peu de temps pour remettre ce projet. Maintenant je suis entrain de travailler sur la servlet qui récupèrera les données du form,les mettra dans un objet et les écrira en mémoire...
Merci encore.
0
aurna Messages postés 193 Statut Membre 7
 
Vincinho,je voulait te faire un MP mais c'est pas possible,on me dit que tu es anonyme.Tu ne veux pas les MP? Si c'est pas le cas je te prie de me passer ton adresse mail,ou alors je te prie de faire un message içi: tchankonina@yahoo.fr
Merci.
0
barhoum
 
svp qui peut me donner un code d'une servlet pour aspirateur d'eamil
0