Gestion des dates dans un formulaire

Fermé
kaj - 11 juin 2010 à 12:07
 kaj - 11 juin 2010 à 15:06
Bonjour,
je suis etudiante je fais mon programme en php ayant un formulaire a remplire les dates! de cela j ai fais le code suivant pour que lorsque je met le crisseur sur le formulaire a remplir, le calendrier s ouvre et je selectionne la date ainsi l enregistrement se fais automatiquement! mais lorsque je click sur le bouton de validation je recois le massage me disant que le donnee entré dans le champ n est pas reconnu donc le champ est vide alors que la date selection se trouve dedans!pouvez vous m expliquer pourquoi cette date selectionné a partir du calendrier n est pas reconnue et comment fixer ce probleme?
merci et voici mon code
ici il y a insere.html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

<link rel="styleshe
<script language="JavaScript" type="text/javascript" src="js/jsDatePick.min.1.1.js"></script>

<script language="JavaScript" type="text/javascript">
//*
function cal(){
new JsDatePick({
useMode:2,
target:"inputField"

//limitToToday:true <-- Add this should you want to limit the calendar until today.
});


};
//*/

</script>
</head>
<body bgcolor="#CAD6D9" onload="cal();">

<form action="insere.php" method="post" name="formulaire" onSubmit="return verif_formulaire()">
<p>DATE : <input type="text" name="date" id="inputField" /></p>
<input type="submit" name="insert"value="INSERT" />
</form>

et dans insere.php

<?php

$conn=mysql_connect("localhost", "root", "");
mysql_select_db("ld");

if ( isset (isset ($_POST['date'])) // Si les variables existent
{
........
}

j attend patiement votre reponse
A voir également:

5 réponses

louloute300 Messages postés 335 Date d'inscription jeudi 3 juin 2010 Statut Membre Dernière intervention 28 novembre 2012 29
11 juin 2010 à 12:27
Dans une bdd, les chp type "date" sont les dates en version anglaise:
mm/dd/aaaa (mois/jour/année)

Donc il est possible que 31 mois, il ne connait sans doute pas...

Pour ce faire, je te propose ce code:

$date=isset ($_POST['date'])?$_POST['date']:"";
if ($date<>""){

// Sépare les jour/mois/annee:
list($jour,$mois,$annee)explode("/",$date);
if (($jour<>"")and($mois<>"")and($annee<>"")){
$champ_date=$mois."/".$jour."/".$annee;

//Vérifie que la date existe:
if ($date("m/d/y",$champ_date)<>""){

//Enregistrement vers ta table....
// La variable date à inclure ds ta date est $champ_date

}
}
}
0
mais le probleme est que sur certain code ça accepte et de plus si j ecrit manuellement par exemple la date eu format yyyy-mm-dd la base des donnees accepte cette date et l enregistre correctement! je sais pas ce qui ne vas pas du tout la seul difference est que l un est enregistré sous php l autre sous html! je sais pas s il n ya a pas moyen de gerer ça de tel sorte que si la personne remplisse la date avec le format different de yyyy-mm-aa une erreur lui parvient lui signalant de reecrire la date selon le format specifier ci haut! si possible ça sera mieux de m envoyer ce code en php
merci
0
louloute300 Messages postés 335 Date d'inscription jeudi 3 juin 2010 Statut Membre Dernière intervention 28 novembre 2012 29
11 juin 2010 à 13:35
Je pense que tu veux un code javascript...
Sinon, je ne comprend pas vraiment le pb
0
oui vraiment avec javascript c est mieux mais j ai pas encore trouver le procedure
j ai essayer de faire ce qui suit dans mon code :
if(isset ($_POST['date']) AND $_POST['date'] != NULL)
{
$date = $_POST['date'];
if ($date.format() != format("yyyy-mm-dd"))
{
//message d erreur javascript
}
else
{
//insertion de la date dans la base des donnee
}
}

mais je recoit un message d erreur me disant que la methode format n est pas reconnu!
je sais que c est du javascript que j ai besoin mais comment est ce que je doit formule ça?
MERCI
0
louloute300 Messages postés 335 Date d'inscription jeudi 3 juin 2010 Statut Membre Dernière intervention 28 novembre 2012 29
11 juin 2010 à 14:05
Pour javascript, voir
https://forums.commentcamarche.net/forum/affich-1987996-javascript-convertir-une-date-et-comparer

sinon, pr le php:

if ($date.format() != format("yyyy-mm-dd"))

ne pet pas fonctionner.

En revanche, demande toi avant si:
le 2010-12-11 est la même chose que le 2010-12-11
Parceque on peut fabriquer un code pr vérifier la date, mais on ne pas lui demander de VERIFIER si la date est bien la même que dans la tete de l'utilisateur...

biensur, on peut lui coder que
le 2010-31-12 est pas possible du fait qu'il n'y a pas 31 mois
mais le 2010-12-11 au lieu du 2010-11-12 Ca c'est pas possible
0
et alors qu est ce que je peux faire?
modifier quoi pour que la gestion des erreurs soit fiable?
merci
0
louloute300 Messages postés 335 Date d'inscription jeudi 3 juin 2010 Statut Membre Dernière intervention 28 novembre 2012 29
11 juin 2010 à 14:15
On peux pas toujours tout vérifier avec ce type de champ:
<input type=text name="date">

En revanche, pourquoi ne pas mettre 2 chp de ce type + un select:

<input type=text name="jour">
<select name="mois"><option value=1>Janvier></option>
<option value=2>Février></option>
<option value=3>Mars</option>
...etc...
</select>
<input type=text name="annee">
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
je pense qu avec ces input nous serons obliges de selectionner l annee dans son champs, la date dans son champ et l annee dans son champs! alors qu il bon de diminuer la tache a l utilisateur au lieu de faire la selection c est bien possible de combiner ces 3 variable dans un meme variable! et je pense qu un code simple et court est plus fiable que le code long!
au fait je viens d essayer a faire un code javascript mais ça ne marche pas du tout pas de gestion des dates

<script language="JavaScript" type="text/javascript">


function verifDate(valDate) //regarde si la date est bien au format aaaa-mm-jj
{
var gabari=/\d\d\d\d-\d\d-\d\d;
if(valDate=="")
{
alert("Veuillez entrer une date");
}
else if (!gabari.exec(valDate))
{
alert("format incorrecte");
}
}
</scrip>
comment tu trouve si on ameliore celui ci! je croyais que ça va fonctionner et je meme mettre la fonction appelant la methode verifDate comme ça


<form action="insere.php" method="post" name="formulaire" onSubmit = "return verifDate(date)">
tu vois mais ça ne marche pas toujours
0