IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Test date formulaire


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Inscrit en
    Mai 2006
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 10
    Points : 5
    Points
    5
    Par défaut Test date formulaire
    Bonjour,
    Je buche sur un petit truc tout bête, mais je ne trouve pas la solution.

    J'ai un formulaire qui permet de rentrer des "activités" dans une base de donnée. Pour ceci je dois remplire les diffrents champs et 2 de ceux-ci sont des select box pour selectionner la date et l'heure.

    Pour l'instant en fait je fais le contrôle des dates (jour, mois, année) en javascript, mais de se fait je ne peux pas par la suite passer dans mon fichier de verification les autres champs pour savoir s'ils peuvent être inscrit dans la base.
    Donc la question est de savoir si c'est possible de le faire en PHP uniquement (avec le contrôle) ou comment puis-je renvoyer mes données de jour, mois et date vu que je suis en JS (côte client) au code PHP (cote serveur)?

    Formulaire d'ajout:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
     
    <?
    require("fonction.js");
    ?>
    <form method="post" action="controle_ajout_raid.php" name="ajout_raid">
      <h1>
        Ajout de raid
      </h1>
      <br>
      <label class="label_raid_form">
        Nom du Raid
      </label>
      <input type="text" name="raid" size="20" maxlength="30" class="input">
      <br>
      <label class="label_raid_form">
        Lieu
      </label>
      <input type="text" name="lieu" size="20" maxlength="30" class="input">
      <br>
      <label class="label_raid_form">
        Date
      </label>
    <script language="JavaScript">creerselect();</script>
    <?
    /*
    echo '<select name="day">';
      for($i=1; $i<=31; $i++)
      {
        echo '<option value='.$i;
        if($i == $day)
        {
          echo 'selected';
        }
      echo'>'.$i.'</option>';
      }
    echo '</select>';
    echo '<select name="month" onChange="verif()">';
      for($i=0; $i<=11; $i++)
      {
        echo '<option value='.$i;
        if($i == $nmois)
        {
          echo ' selected';
        }
        echo '>'.$nmois[$i].'</option>';
      }
    echo '</select>';
    echo '<select name="year">';
      for($i=$anneeactu; $i <=$anneeactu+1; $i++)
      {
        echo '<option value='.$i;
        if($i == $year)
        {
          echo 'selected';
        }
        echo '>'.$i.'</option>';
      }
    echo '</select>';
    */
    ?>
      <br>
      <label class="label_raid_form">
        Heure
      </label>
    <?
    echo '<select name="hh">';
      for($z=1; $z<=24; $z++)
      {
      echo '<option value='.$z.'>'.$z.'</option>';
      }
    echo '</select>';
    echo '<select name="min">';
      for($y=0; $y<=45; $y=$y+15)
      {
      echo '<option value='.$y.'>'.$y.'</option>';
      }
    echo '</select>';
    ?>
      <br>
      <label class="label_raid_form">
        Raid Leader
      </label>
      <input type="text" name="leader" size="20" maxlength="30" class="input">
      <br>
      <label class="label_raid_form">
        Participant Max
      </label>
      <input type="text" name="maxparticipant" size="4" maxlength="2" class="input" onBlur="maxparti()">
      <br>
      <input type="submit" value="Ajouter" onClick="verif()" class="button_form">
    </form>
    Fonction JS
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
     
    // Pour générer les années
    aujour=new Date();
    // table des libellés des mois
    mois=new Array("Jan","Fév","Mar","Avr","Mai","Jui","Jui","Aoû",
    "Sep","Oct","Nov","Déc");
    //**************************** Création des select pour la date ******************************//
    //********************************************************************************************//
    function creerselect()
    {
      // Création de la liste déroulante des numéros des jours
      document.write("<select name='jj'>");
      for(i=1;i<=31;i++)
      {
        document.write("<option value="+i);
        if(aujour.getDate()==i)
        {
          document.write(" selected");
        }
        document.write(">"+i+"</option>");
      }
      document.write("</select>");
    // Création de la liste déroulante des libellés des mois
      document.write("<select name='mm' onChange='verif()'>");
      for(i=0;i<=11;i++)
      {
        document.write("<option value="+i);
        if(aujour.getMonth()==i)
        {
          document.write(" selected");
        }
      document.write(">"+mois[i]+"</option>");
      }
      document.write("</select>");
    // Création de la liste déroulante des 10 années avant et après
        annee=aujour.getYear();
      if(annee<1900)
      {
        annee=annee+1900;
      }
      document.write("<select name='aa'>");
      for(i=-2;i<=2;i++)
      {
        document.write("<option value="+(annee-i));
        if(i==0)
        {
          document.write(" selected");
        }
      document.write(">"+(annee-i)+"</option>");
      }
      document.write("</select>");
    }
    //********************************************************************************************//
    //************************** Fin création des select pour la date ****************************//
    //************************** Verification des select pour la date ****************************//
    //********************************************************************************************//
    // Vérification des select
    function verif()
    {
    // On crée une date avec les jj/mm/aa saisis
      testDate = new Date(document.ajout_raid.aa.value,document.ajout_raid.mm.value,document.ajout_raid.jj.value);
      mess="";
    // Est-ce le numéro du jour correspond à  celui de la date créée ?
      if((testDate.getDate()!=document.ajout_raid.jj.value) || (testDate.getMonth()!=document.ajout_raid.mm.value))
      {
        alert("ATTENTION le "+document.ajout_raid.jj.value+" "+mois[document.ajout_raid.mm.value]+" n'existe pas");
      }
      else
      {
        alert("La date est correcte");
      }
    // Et si on corrigeait automatiquement...
    // On prend le numéro du jour de la date créée
      document.ajout_raid.jj.options[testDate.getDate()].selected=true;
    }
    Je vais mettre encore une image pour vraiment expliquer ce que je fais.



    Donc en gros je cherche à faire ces menus deroulants pour la date, mais quand je veux valider mon formulaire et qu'il passe dans le premier test qui verifi que tout est rempli. Il passe dans mon "else" sans trouver les champs deroulants fait en java recup avec $_POST['jj']

  2. #2
    Membre éclairé Avatar de Yobs
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    675
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2004
    Messages : 675
    Points : 846
    Points
    846
    Par défaut
    Citation Envoyé par Krakt
    Pour l'instant en fait je fais le contrôle des dates (jour, mois, année) en javascript, mais de se fait je ne peux pas par la suite passer dans mon fichier de verification les autres champs pour savoir s'ils peuvent être inscrit dans la base.
    Rien ne t'empeche d'effectuer tes autres test en javascript, il te suffit d'utiliser un nom différent pour tes fonctions de test.

    Citation Envoyé par Krakt
    Donc la question est de savoir si c'est possible de le faire en PHP uniquement (avec le contrôle)
    Oui tu peux effectuer tes test en php.

    Citation Envoyé par Krakt
    comment puis-je renvoyer mes données de jour, mois et date vu que je suis en JS (côte client) au code PHP (cote serveur)?
    Là je ne comprends pas vraiment. Si tu effectue tes tests via javascript et que ces test sont validées, lors de la soumission du formulaire, tes données se trouve dans la variable $_POST.

  3. #3
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    en php pour vérifier une date il existe Ceci

    Citation:
    Krakt a écrit :
    Pour l'instant en fait je fais le contrôle des dates (jour, mois, année) en javascript, mais de se fait je ne peux pas par la suite passer dans mon fichier de verification les autres champs pour savoir s'ils peuvent être inscrit dans la base.

    Rien ne t'empeche d'effectuer tes autres test en javascript, il te suffit d'utiliser un nom différent pour tes fonctions de test.
    Ou carrément de mettre des paramètres dans la fonction de test et lors des différents appels mettre l'id ou le nom des élements à vérifier

  4. #4
    Futur Membre du Club
    Inscrit en
    Mai 2006
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 10
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par Yobs
    Là je ne comprends pas vraiment. Si tu effectue tes tests via javascript et que ces test sont validées, lors de la soumission du formulaire, tes données se trouve dans la variable $_POST.
    En fait je cree juste la liste déroulante en Java (j'y connais pas grand chose et je n'ai plus beaucoup de temps pour me pencher dessus(projet d'examen final)) et fait directement les contrôles (onChange) sur le mois pour savoir si le jour existe dans ce mois.

    Quand j'echo ma variable $_POST['jj'] (par exemple) il ne m'ecrit rien du tout, comme si la variable etait vide. Et c'est ca que je ne comprends pas vraiment ! :/
    Est-ce que d'après toi avec le code ci-dessus la variable $_POST['jj'] ou ['mm'] est set correctement et devrai être "pleine"?


    J'avais commencé ça en php, mais je me suis perdu avec le teste pour le "selected".
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
     
    echo '<select name="day">';
      for($i=1; $i<=31; $i++)
      {
        echo '<option value='.$i;
        if($i == $day)   <------- La je suis perdu :p
        {
          echo 'selected';
        }
      echo'>'.$i.'</option>';
      }
    echo '</select>';
    echo '<select name="month" onChange="verif()">';
      for($i=0; $i<=11; $i++)
      {
        echo '<option value='.$i;
        if($i == $nmois) <------- La je suis perdu :p
        {
          echo ' selected';
        }
        echo '>'.$nmois[$i].'</option>';
      }
    echo '</select>';
    echo '<select name="year">';
      for($i=$anneeactu; $i <=$anneeactu+1; $i++)
      {
        echo '<option value='.$i;
        if($i == $year) <------- La je suis perdu :p
        {
          echo 'selected';
        }
        echo '>'.$i.'</option>';
      }
    echo '</select>';
    PS: j'ai oublie de marquer que le script java n'est pas de moi (par contre je l'ai un peu modifié).

  5. #5
    Futur Membre du Club
    Inscrit en
    Mai 2006
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 10
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par Kerod
    en php pour vérifier une date il existe Ceci
    Oui, je l'avais trouvé en fait, mais comme mis dans mon poste juste au dessus, m'étant perdu dans le "selected" en code php je n'ai pas reussi a l'utilisé correctement

    Mais merci quand même pour le lien

  6. #6
    Membre éclairé Avatar de Yobs
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    675
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2004
    Messages : 675
    Points : 846
    Points
    846
    Par défaut
    Alors d'après ton script le select pour les kours se nomme day donc tu devrais récupérer via $_POST['day'].

    Pour connaitre l'état de ta variable $_POST après la soumission du formulaire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    echo '<pre>';
    print_r($_POST);
    echo '</pre>';

  7. #7
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Tu es perdu dans ca ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     echo '<option value='.$i;
        if($i == $day)   <------- La je suis perdu :p
        {
          echo 'selected';
        }
      echo'>'.$i.'</option>';
    tu pourrais alléger en faisant ca aussi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<option value="'.$i.'" selected="selected">'.$i.'</option>'

  8. #8
    Futur Membre du Club
    Inscrit en
    Mai 2006
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 10
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par Yobs
    Alors d'après ton script le select pour les kours se nomme day donc tu devrais récupérer via $_POST['day'].

    Pour connaitre l'état de ta variable $_POST après la soumission du formulaire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    echo '<pre>';
    print_r($_POST);
    echo '</pre>';

    Le code que j'ai mis en bas est celui que j'ai fait un php ou là je recupere avec [day] par contre le [jj] ou [mm] c'est dans le javascript
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    document.write("<select name='jj'>");

  9. #9
    Futur Membre du Club
    Inscrit en
    Mai 2006
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 10
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par Kerod
    Tu es perdu dans ca ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<option value="'.$i.'" selected="selected">'.$i.'</option>'
    Oui, je suis perdu dans le teste pour ecrire "selected" à la selection equivalente à ce que l'utilisateur choisira.

    Je ne connaissais pas le selected="selected" . Cela me selectionne ce que la personne aura selectionné dans la liste deroulante automatiquement?

  10. #10
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Oups j'ai oublié d'ajouter le test

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     echo '<option value="'.$i.'" '.(($i == $day)?(selected="selected"):("")).'>'.$i.'</option>'
    C'est ca

  11. #11
    Futur Membre du Club
    Inscrit en
    Mai 2006
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 10
    Points : 5
    Points
    5
    Par défaut
    En fait j'ai résolu le problème hier soir, je devais être trop fatigué. Merci bien pour vos conseils

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Effacer un champ dans un formulaire, Test Dates
    Par sylvaindenisbe dans le forum Modélisation
    Réponses: 21
    Dernier message: 19/05/2007, 15h30
  2. test date formulaire
    Par hartecel dans le forum Langage
    Réponses: 16
    Dernier message: 23/03/2007, 12h45
  3. Test sur formulaire avec liste des erreurs
    Par Nicos77 dans le forum Langage
    Réponses: 37
    Dernier message: 17/11/2005, 10h22
  4. test validation formulaire
    Par Nkubi dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 28/06/2005, 11h22
  5. test pré-formulaire
    Par autumn319 dans le forum ASP
    Réponses: 22
    Dernier message: 04/09/2003, 16h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo