Page 1 sur 1
vérification des adresses e_mail
Posté : 26 juin 2007, 18:27
par dasou
bonjour tout le monde,
j'utilise php et javascript; voilà mon problème:
je fais la saisie de personnes par lot,
page1: contient le nombre de personnes (n)
page2: contiendra un tableau avec n ligne (le nombre saisi dans la page1) et chaque ligne comporte un ensemble de formulaires y compris des formulaire pour saisir des adresses e_mail.
j'utilise cette fonction pour verifier une adresse e_mail sur un seul formulaire;
Code : Tout sélectionner
function verifMail(a)
{
testm = false ;
for (var j=1 ; j<(a.length) ; j++)
{
if (a.charAt(j)=='@')
{
if (j<(a.length-4))
{
for (var k=j ; k<(a.length-2) ; k++)
{
if (a.charAt(k)=='.') testm = true;
}
}
}
}
if (testm==false) alert('Votre adresse e-mail est incorrecte.');
return testm ;
}
et pour l'utiliser sur un seul formulaire (e_mail):
Code : Tout sélectionner
<form action="page3" method="post" onsubmit='return verifMail(document.formulaire.e_mail.value);'>
ma question est:comment appliquer cette fonction sur un ensemble de formulaires qui se produissent dynamiquement? Merci d'avance.
Posté : 26 juin 2007, 20:09
par AB
Je sais pas si j'ai bien saisi ta question.
A priori j'aurai envie de te répondre de faire une boucle de traitement sur l'ensemble de tes formulaires
Posté : 26 juin 2007, 23:19
par Sékiltoyai
Au passage, même si tu fais une vérification par javascript, ca ne remplace aucunement une vérification en php qui celle là, est indispensable.
Posté : 27 juin 2007, 10:18
par dasou
bonjour, merci pour vos reponses.
oui je compte faire une boucle pour tout tester le problème est que à chaque fois le nom du champ change, comment concaténer une variable php au nom de mon champ
voilà ma boucle:
Code : Tout sélectionner
<?php
for($v=1;$v<=$_POST['n'];$v++)
{
?>
<form action="page3" method="post" onsubmit='return verifMail(document.formulaire.e_mail.$v.value);'>
<input class="text" size="8" type="text" name="<?php echo "e_mail".$v; ?>"/>
.
.
.
}
mon problème se pose au niveau de: onsubmit='return verifMail(document.formulaire.e_mail.$v.value);' et plus précisément "e_mail.$v"
Merci, j'attends vos reponses
Posté : 27 juin 2007, 22:49
par AB
Peut-être ça?
Code : Tout sélectionner
<form action="page3" method="post" onsubmit='return verifMail(document.formulaire.<?php echo "e_mail.$v"?>.value);'>
Posté : 28 juin 2007, 16:33
par Invité
salut,
ça marche pas

Posté : 28 juin 2007, 17:12
par AB
Oui je n'ai répondu directement qu'à ta question sur la variable mais il y a une faute de syntaxe dans ton javascript
Code : Tout sélectionner
<form action="page3" method="post" id="<?php echo 'fmail'.$v ?>" onsubmit="verifMail(document.forms.['<?php echo 'fmail'.$v?>'].<?php echo 'e_mail'.$v; ?>.value);"
<input class="text" size="8" type="text" name="<?php echo 'e_mail'.$v; ?>" id="<?php echo 'e_mail'.$v; ?>" value="" />
<?php echo 'fmail'.$v?> indique l'id du formulaire
<?php echo 'e_mail'.$v; ?> indique d'id du champ dans le formulaire
Posté : 29 juin 2007, 00:14
par dasou
Bonsoir, je vous remercie
j'ai essayé ce que vous m'avez conseillée mais ça marche pas
mais quand j'ai procédé comme cela, le programme teste que le 1er champ
Code : Tout sélectionner
for($v=1;$v<=$_POST['n'];$v++)
{
<form action="page3" method="post" id="form" name="form" onsubmit='return verifMail(document.form.<?php echo "e_mail".$v; ?>.value);'>
<input class="text" size="8" type="text" name="<?php echo "e_mail".$v; ?>" id="<?php echo "e_mail".$v; ?>" value=""/>
j'ai pas renomé à chaque itération le formulaire, c'est possible qu il y avait une erreur syntaxique et comme je suis debutante...
je comprends pas pourquoi ça teste que le 1er champ. Merci
Posté : 29 juin 2007, 05:54
par AB
Bonsoir, je vous remercie
<form action="page3" method="post" id="form" name="form" onsubmit='return verifMail(document.form.<?php echo "e_mail".$v; ?>.value);'>
<input class="text" size="8" type="text" name="<?php echo "e_mail".$v; ?>" id="<?php echo "e_mail".$v; ?>" value=""/>
[/code]
j'ai pas renomé à chaque itération le formulaire, c'est possible qu il y avait une erreur syntaxique et comme je suis debutante...
Merci
id="form" répété plusieurs fois dans une même page ne peut pas marcher car
un id doit être unique. il faut donc le renommer à chaque itération.
C'est certainement pour cette raison que cela ne teste que le premier champ. Tu ne dois pas être loin de la solution.

Posté : 29 juin 2007, 10:40
par Invité
Bonjour,
Merci AB pour les informations,
ok j'ai procédé comme indiqué:
Code : Tout sélectionner
<form action="page3" method="post" id="<?php echo 'fmail'.$v ?>" onsubmit='return verifMail(document.forms.['<?php echo 'fmail'.$v?>'].<?php echo "e_mail".$v; ?>.value);'>
<input class="text" size="8" type="text" name="<?php echo "e_mail".$v; ?>" id="<?php echo "e_mail".$v; ?>" value=""/>
mais ça marche toujours pas, il y a surement une erreur syntaxique!

Posté : 29 juin 2007, 18:02
par AB
Bonjour,
Merci AB pour les informations,
ok j'ai procédé comme indiqué:
Code : Tout sélectionner
<form action="page3" method="post" id="<?php echo 'fmail'.$v ?>" onsubmit='return verifMail(document.forms.['<?php echo 'fmail'.$v?>'].<?php echo "e_mail".$v; ?>.value);'>
<input class="text" size="8" type="text" name="<?php echo "e_mail".$v; ?>" id="<?php echo "e_mail".$v; ?>" value=""/>
mais ça marche toujours pas, il y a surement une erreur syntaxique!

Y'a pas de point avant le crochet qui suit document.forms, essaies la syntaxe ci-dessous sans rien changer
Code : Tout sélectionner
<form action="page3" method="post" id="<?php echo 'fmail'.$v ?>" onsubmit="return verifMail(document.forms['<?php echo 'fmail'.$v?>'].<?php echo 'e_mail'.$v; ?>.value);">
<input class="text" size="8" type="text" name="<?php echo 'e_mail'.$v; ?>" id="<?php echo 'e_mail'.$v; ?>" value="" />
Si ça ne marche pas c'est que ça vient d'ailleurs.