Rechercher : dans
Par :

Validation d'un formulaire et execution PHP

Dernière réponse le 4 mar 2002 à 11:10:53 sspacy, le 2 mar 2002 à 20:29:27 
 Signaler ce message aux modérateurs

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

Meilleures réponses pour « validation d'un formulaire et execution PHP » dans :
[Webmaster] Un formulaire de contact pour votre site VoirCe formulaire permet d'avoir une page pour être contacté sur son site, sans utiliser de logiciel de messagerie. La personne qui vous contacte indique son adresse, l'objet du message et son message (évidemment). Le code est une version...
Introduction à PHP VoirQu'est-ce que PHP? PHP est un langage interprété (un langage de script) exécuté du côté serveur (comme les scripts CGI, ASP, ...) et non du côté client (un script écrit en Javascript ou une applet Java s'exécute sur votre ordinateur...). La...
PHP - Récupération de données VoirPHP rend très simple la récupération de données envoyées par l'intermédiaire de formulaires HTML. Création d'un formulaire Grâce à la balise FORM du langage HTML, il est très simple de créer des formulaires comprenant : des champs de saisie des...
Bases de données - Utilisation de formulaires VoirUtilisation de formulaires Afin d'exploiter les bases de données, il faut fournir une interface à l'utilisateur lui permettant de visualiser des données en fonction de certains critères. Pour cela il existe un outil : les formulaires. Un formulaire...

1

Bobinours, le 3 mar 2002 à 05:48:17
  • +2

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 =-

Répondre à Bobinours

2

sspacy, le 3 mar 2002 à 10:23:45

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....

Répondre à sspacy

6

Bobinours, le 3 mar 2002 à 16:11:51

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 =-

Répondre à Bobinours

3

PhP, le 3 mar 2002 à 12:36:25
  • +2

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   ]]

Répondre à PhP

4

sspacy, le 3 mar 2002 à 13:36:35

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 ??

Répondre à sspacy

5

PhP, le 3 mar 2002 à 15:56:01
  • +1

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   ]]

Répondre à PhP

7

 sspacy, le 4 mar 2002 à 11:10:53

Merciiiiiiii

C très cool de ta part,

Sspacy

Répondre à sspacy