Page 1 sur 1

problème d'enregistrement date dans un formulaire

Posté : 18 oct. 2016, 03:41
par juvamine
bonjour,
j'ai un souci sur un enregistrement de date, dans une balise select je choisis le jour puis le mois et l'année.
le hic c'est que le formulaire fonctionne que si je choisit un jour entre 01 à 10, au delà cela ne fonctionne pas. :shock:
je ne m'étais rendu compte tout de suite car je rentrait mes données au début du mois...
voici mon formulaire

Code : Tout sélectionner

<?php if(empty($_POST['description']) || empty($_POST['t'])) { echo'problème'; } else { if(isset($_POST['jour']) && isset($_POST['mois']) && isset($_POST['annee']) && checkdate($_POST['jour'], $_POST['mois'], $_POST['annee'])) { $jour=$_POST['jour']; $mois = $_POST['mois']; $annee = $_POST['annee']; $date=$_POST['annee'].'-'.$_POST['mois'].'-'.$_POST['jour']; $type = $_POST['typeOperation']; $description = $_POST['description']; $fixe = $_POST['fixe']; $t = $_POST['t']; $query=$db->prepare('INSERT INTO detail (jour, mois, annee, date_n, dateOperation, typeOperation, description, fixe, t) VALUES (:jour, :mois, :annee, :date_n, CURDATE(), :typeOperation, :description, :fixe, :t)'); $query->bindValue(':jour', $jour, PDO::PARAM_STR); $query->bindValue(':mois', $mois, PDO::PARAM_STR); $query->bindValue(':annee', $annee, PDO::PARAM_STR); $query->bindValue(':date_n', $date, PDO::PARAM_STR); $query->bindValue(':typeOperation', $type, PDO::PARAM_STR); $query->bindValue(':description', $description, PDO::PARAM_STR); $query->bindValue(':fixe', $fixe, PDO::PARAM_STR); $query->bindValue(':t', $t, PDO::PARAM_STR); $query->execute(); header('Location: ./index.php'); exit(); } else { //echo'probleme'; } } echo '<form method="post" action="form.php" enctype="multipart/form-data"> <fieldset><legend>Insertion de transaction</legend> <table> <tr><td>* date d\'opération:</td> <td><select name="jour">'; $selected = ''; for($i=01;$i<=31;$i++) { if($i<10) { if($i == date('d')) { $selected = ' selected="selected"'; } echo'<option value="0',$i,'"',$selected,'>0',$i,'</option>'; } else { if($i == date('d')) { $selected = ' selected="selected"'; } echo'<option value="',$i,'"',$selected,'>',$i,'</option>'; } $selected = ''; } echo'</select> <select name="mois">'; $selected = ''; for($i=01;$i<=12;$i++) { if($i<10) { if($i == date('m')) { $selected = ' selected="selected"'; } echo'<option value="0',$i,'"',$selected,'>0',$i,'</option>'; } else { if($i == date('m')) { $selected = ' selected="selected"'; } echo'<option value="',$i,'"',$selected,'>',$i,'</option>'; } $selected = ''; } echo'</select> <select name="annee">'; $selected = ''; for($i=1979;$i<=2079;$i++) { if($i == date('Y')) { $selected = ' selected="selected"'; } echo'<option value="',$i,'"',$selected,'>',$i,'</option>'; $selected = ''; } echo'</select></td></tr> <tr><td>Type de l\'opération :</td> <td><select name="typeOperation"> <option selected>choisir le type</option> <option value="d">Débit</option> <option value="c">Crédit</option> </select></td></tr> <tr><td>* description :</td><td><input type="text" name="description" /></td></tr> <tr><td> fixe :</td> <td><select name="fixe"> <option selected>choisir le type</option> <option value="0">non</option> <option value="1">oui</option> </select></td></tr> <tr><td>sommes :</td><td><input type="texte" name="t" /><td></tr> </table> <p><input type="submit" value="Enregistrer" /></p></form> </fieldset>'; ?>
merci de votre aide. (et de ton aide moogli :D )

Re: problème d'enregistrement date dans un formulaire

Posté : 18 oct. 2016, 09:58
par moogli
salut,

alors pour être précis tu peux aller jusqu'au 12 du mois :) mais aussi jusqu'au mois N° 31 ...

le problème vient de ton utilisation de la fonction checkdate. tu as juste oublié que les mecs qui ont créé ça sont de l'autre coté de l'atlantique et inverse le jour et le mois (n'importe quoi ... :-) ).

du coup tu as inversé les deux premier paramètre de la fonction checkdate.

pour plus d'info la doc (indiquée 5 ligne haut ;) )

@+

Re: problème d'enregistrement date dans un formulaire

Posté : 18 oct. 2016, 11:38
par juvamine
salut moogli
merci encore à toi.
en effet ça marche tout mieux comme ça ;)
c'est vrai qu'il faut prendre l'habitude de tout le temps regarder php.net avant de poser des questions!!! honte à moi car j'y pense 1 fois sur 4.
c'est bizarre chez eux quand même lol mois, jour, année...

Re: problème d'enregistrement date dans un formulaire

Posté : 18 oct. 2016, 11:41
par moogli
c'est bizarre chez eux quand même lol mois, jour, année...
ben je comprend pas pourquoi ils font pas comme nous, c'est vachement mieux :mrgreen:

pour la doc c’est un réflexe on ne peu pas connaitre par cœur la doc de tout les langages que l'on utilise.
Il y a bien sur un minimum quand tu utilises le même tout les jours mais y a quand même de truc qui rentre pas toujours (les 50 flags de paramètre de date par exemple ;) ).
au final c'est plus simple et rapide :)


@+

Re: [RESOLU] problème d'enregistrement date dans un formulaire

Posté : 18 oct. 2016, 11:49
par juvamine
oui c sur.
maintenant que ça fonctionne mes 3 colonnes (jour, mois, annee) de ma table ne me servent plus donc je vais pouvoir les supprimées.