Validation d'un formulaire et execution PHP

Fermé
sspacy - 2 mars 2002 à 20:29
 sspacy - 4 mars 2002 à 11:10
J'ai compris comment vérifier un champ d'un formulaire grâce à javascript mais comment faire en sorte que:

1/ si le champ n'est valide alors le formulaire n'est pas posté
2/ si le champ est valable le champ est posté et execute un script php ?


Merciiiii !

Sspacy

3 réponses

PhP Messages postés 1770 Date d'inscription lundi 11 décembre 2000 Statut Membre Dernière intervention 23 décembre 2009 606
3 mars 2002 à 12:36
Salut SSPACY

Pas étonnant que ca fonctionne pas ! Tu testes pas un champ du formulaire !
Et puis il manque des accolades dans le fct JavaScript !

Normalement dans ton formulaire ton champ de type auteur doit se présenter comme suit :

<input type="text" name="auteur" size=40 maxlength=40>

G mis 40 car. de long au hasard.

De plus donne un nom a ton formulaire par ex "fiche"
Le code donne alors

<form name="fiche" method="post" action="Scripts/Publier.php" onSubmit="return verifForm();">
<input type="text" name="auteur" size=40 maxlength=40>
</form>


Maintenant le code + JS :

<html>
<head>
<script language="JavaScript">
<!--


function verifForm()
{
if(document.fiche.auteur.value == "")
{
alert('Le champs AUTEUR est obligatoire');
return false;
}
else
{
return true;
}
}

// -->
</script>
</head>
<body>

<form name="fiche" method="post" action="Scripts/Publier.php" onSubmit="return verifForm();">
<input type="text" name="auteur" size=40 maxlength=40>
<input type="submit" value="Envoyer">
</form>
</body>
</html>


Comma çà c'est mieux ;:-)

@+
Philippe

[[  The Truth is Out There   ]]
3
Merciiiiiii Php,
effectivement comme ça ça marche bcp mieux !!

une dernière petite Q
*<:D)

je veux aussie testé d'autres champs
comment faire sans réécrire la fonction javascript pour chaque champs ??
0
Bobinours Messages postés 2898 Date d'inscription jeudi 26 avril 2001 Statut Membre Dernière intervention 21 mars 2013 504
3 mars 2002 à 05:48
Dans le form fais :

<FORM action="script.php" onSubmit="return verif();"...>

Et dans ta fonction JavaScript, tu retournes vrai ou afux selon :

function verif()
{
if (champ incorrect)
{
alert('incorrect');
return false;
}
return true;
}

-= Bobinours =-
2
Merci Bobinours mais comme je suis archie débutant en java, je n'arrive pas à appliquer ton truc, ça marche pas !

Le champ à tester a pour nom auteur, le formulaire n'a pas de nom mais comporte plusieurs champs que j'aimerais aussi tester d'ailleurs, ,voilà donc ma fonction:

function verifForm()
{
if(form.auteur.value == "")
alert('Le champs AUTEUR est obligatoire');
return false;
else
return true;
}

et voilà l'entête de mon formulaire:

<form method="post" action="Scripts/Publier.php" onSubmit="return verifForm();">

La fonction javascript est ignorée....
0
Bobinours Messages postés 2898 Date d'inscription jeudi 26 avril 2001 Statut Membre Dernière intervention 21 mars 2013 504
3 mars 2002 à 16:11
Ce n'est pas du JAVA, mais du JavaScript. Ca n'a rien à voir (malgré le nom).

De façon somple, fais :

<form method="post" action="Scripts/Publier.php" onSubmit="return verifForm(this);">

(this correspond à l'objet formulaire <FORM>)

Et dans ta fonction, Change ceci :

function verifForm(leForm)
{
if(leForm.auteur.value == "")
...

-= Bobinours =-
0
PhP Messages postés 1770 Date d'inscription lundi 11 décembre 2000 Statut Membre Dernière intervention 23 décembre 2009 606
3 mars 2002 à 15:56
well, well, well ...

Si tu ne veux pas réécrire tout il faut généraliser le code JS.
Evidemment c'est un peu plus complexe ...
... car j'utilise des objets.



par ex :


<html>
<head>
<script language="JavaScript">
<!--

var champs=new Array()

function Champ(ref,msg)
{
this.ref=ref
this.msg=msg
}

function champ_estVide()
{
if (this.ref.value == "")
{
alert(this.msg);
this.ref.focus();
return true;
}
else
{
return false;
}
}
Champ.prototype.estVide=champ_estVide


function chargeChamps()
{
champs[0]=new Champ(document.fiche.auteur,"Le champs AUTEUR est obligatoire !")
champs[1]=new Champ(document.fiche.oeuvre,"Le champs OEUVRE est obligatoire !")
}




function verifForm()
{
if (champs[0].estVide()) return false;
if (champs[1].estVide()) return false;
return true;
}



// -->
</script>
</head>
<body onload="chargeChamps()">

<form name="fiche" onSubmit="return verifForm();">
Auteur<input type="text" name="auteur" size=40 maxlength=40>
Oeuvre<input type="text" name="oeuvre" size=40 maxlength=40>
<input type="submit" value="Envoyer">
</form>
</body>
</html>

Ce script ne test qui si les champs sont vides (donc obligatoire en fait) : à toi de le complèter si tu veux tester d'autres conditions (un champ contenant un nombre, une date valide etc ...)


Nota : tu peux effectuer les contrôles à la sortie de chaque champ en écrivant :

Auteur<input type="text" name="auteur" size=40 maxlength=40 onblur="champs[0].estVide()">
Oeuvre<input type="text" name="oeuvre" size=40 maxlength=40 onblur="champs[1].estVide()">

@+
Philippe


[[  The Truth is Out There   ]]
1
Merciiiiiiii

C très cool de ta part,

Sspacy
0