Validation d'un formulaire et execution PHP

sspacy -  
 sspacy -
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. PhP Messages postés 1774 Statut Membre 606
     
    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. sspacy
       
      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. Bobinours Messages postés 2903 Statut Membre 504
     
    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. sspacy
       
      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. Bobinours Messages postés 2903 Statut Membre 504
       
      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. PhP Messages postés 1774 Statut Membre 606
     
    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. sspacy
       
      Merciiiiiiii

      C très cool de ta part,

      Sspacy
      0