Validation d'un formulaire et execution PHP

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

  1. 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
    1. 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
  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 =-
    2
    1. 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
    2. 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
  3. 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
    1. Merciiiiiiii

      C très cool de ta part,

      Sspacy
      0