Javascript verifier une date

Résolu/Fermé
Kratos60 Messages postés 56 Date d'inscription samedi 15 novembre 2008 Statut Membre Dernière intervention 2 mars 2012 - Modifié par Kratos60 le 27/12/2010 à 11:03
jonastuces Messages postés 45 Date d'inscription vendredi 18 mai 2007 Statut Membre Dernière intervention 30 décembre 2010 - 30 déc. 2010 à 18:35
Bonjour a tous,

Je me permet de poster car mon probleme dur depuis trop longtemps(3h) et quoi que je face je ne trouve pas de solution...

Alors voila.
J'ai créée deux pages en php, dans l'une je saisie des données que je bascule dans la deuxieme et j'y fais des calculs enfin bref tout va bien jusque la.
Ensuite dans la deuxieme page je veux faire un tableau mais je veux faire apparaitre ce tableau si la condition est rempli. Donc balise php oblige.
Ensuite dans ce tableau je rentre une année de naissance et une fois que celle ci est rentré je voudrais que l'age soit déduit automatiquement dans une colonne juste a cote de la date de naissance (pour faire cette operation je me sers de la date de naissance et d'une date saisie dans la premiere page).

Seulement voila, je n'y arrive pas...Pourtant j'ai essayé avec du javascript mais ça ne marche pas...

Ah! une dernière chose ma date est décomposée en trois zone de texte car ça m'arrange.

Merci d'avance :)

5 réponses

jonastuces Messages postés 45 Date d'inscription vendredi 18 mai 2007 Statut Membre Dernière intervention 30 décembre 2010 24
24 déc. 2010 à 00:20
Bonsoir Kratos60,

En fait si j'ai bien compris tu passe d'une page à l'autre l'année de naissance ainsi que l'année de comparaison.

Il suffit de récupérer tes variables en POST ou GET selon la façon dont tu procède
$AnneeNaissance = $_POST['NomDeTaVariableAnneeNaissance'];
$AnneeControle = $_POST['NomVariableControl'];

ou

$AnneeNaissance = $_GET['NomDeTaVariableAnneeNaissance'];
$AnneeControle = $_GET['NomVariableControl'];

Pour ta condition de contrôle tu peux faire quelque chose comme

if($AnneeControle > $AnneeNaissance){ // Si l'année de contrôle est supérieur à
Ici ton calcul l'année de naissance
}

Puis tu fait le calcul $Age = $AnneeControle - $AnneeNaissance;
Ensuite il te reste plus qu'à afficher le résultat dans ton tableau par un
echo $Age;

Si tu veux calculer l'age par rapport à l'année en cours, il suffit de faire :
$AnneeControle = date("Y");

En espérant t'avoir aidé.
Tiens-moi au courant.

Bonne soirée et bonnes fêtes de fin d'année.
0
Kratos60 Messages postés 56 Date d'inscription samedi 15 novembre 2008 Statut Membre Dernière intervention 2 mars 2012
Modifié par Kratos60 le 27/12/2010 à 11:04
Bonjour jonastuces,

Desolé de ne repondre que maintenant mais avec les fetes j'ai été un peu occupé ^^.

Bref enfaite, je saisie la date de controle dans la premiere page mais la date de naissance est saisie dans la deuxieme.
Et j'aimerai qu'une fois que j'ai saisie la date de naissance l'age apparaisse automatiquement. Donc pour faire cela je pense qu'il faut utiliser du javascript mais voila je ne vois pas comment faire...
0
Kratos60 Messages postés 56 Date d'inscription samedi 15 novembre 2008 Statut Membre Dernière intervention 2 mars 2012
27 déc. 2010 à 11:10
Bon voila, j'ai un peu avancé.
Deja j'ai la fonction javascript qui verifie la date de naissance et dedans je voudrais rajouter une opération. j'aurai aimé savoir si cela est possible.

L'opération que j'aimerai faire c'est celle plus haut c'est a dire faire année de con trole - annee de naissance. J'ai essayé de mon cote mais ça marche pas si quelque voit pourquoi merci d'avance :).

<script>
function verifDate(element)
{
var tmp = document.forms["result_rpfa"].elements[element].value;
var regsymbol = new RegExp("[ /-]","g"); //verif de la présence d'espace (01 12 2004), de / (01/12/2004) ou de - (01-12-2004)
var regnum = new RegExp("[0-9]{6,8}","g"); //type 011204 ou 01122004
var jour = 0;
var mois = 0;
var annee = 0;
var res = false;
var ladate = new Date();
var annee_courante = ladate.getFullYear().toString();
var age_enfant;

if (tmp != "")
{
var taille = tmp.length;
var bool_num = regnum.test(tmp);
var bool_symbol = regsymbol.test(tmp);

if (bool_num)
{
switch(taille)
{
case 6: // cas 011204
jour = tmp.substr(0,2);
mois = tmp.substr(2,2);
annee = annee_courante.substr(0,2) + tmp.substr(4,2);
break;
case 8: // cas 01122004
jour = tmp.substr(0,2);
mois = tmp.substr(2,2);
annee = tmp.substr(4,4);
}
}
else
{
if (bool_symbol)
{
switch(taille)
{
case 8: // cas 01/12/04
jour = tmp.substr(0,2);
mois = tmp.substr(3,2);
annee = annee_courante.substr(0,2) + tmp.substr(6,2);
break;
case 10: // cas 01/12/2004
jour = tmp.substr(0,2);
mois = tmp.substr(3,2);
annee = tmp.substr(6,4);
}
}
}

if ((jour != 0) && (mois != 0) && (annee != 0))
{
if ((mois == 1) || (mois == 3) || (mois == 5) || (mois == 7) || (mois == 8) || (mois == 10) || (mois == 12)) // mois � 31 jours
{
if (jour < 32)
{
res = true;
}
}
if ((mois == 4) || (mois == 6) || (mois == 9) || (mois == 11)) // mois � 30 jours
{
if (jour < 31)
{
res = true;
}
}
if (mois == 2) // 28 ou 29 jours selon ann�e bisextille
{
if ((annee % 4) == 0)
{
if (jour < 30)
{
res = true;
}
}
else
{
if (jour < 29)
{
res = true;
}
}
}
}



if (res == true)
{
document.forms["result_rpfa"].elements[element].value = jour + "/" + mois + "/" + annee;
if (mois < 7) // date de naissance au 31/12 le plus proche est le 31/12 de l'ann�e pr�c�dente.
{
age_enfant = parseInt($datesinis.toString().substr(6,4)) - parseInt(annee) + 1;
}
else // date de naissance au 31/12 le plus proche est le 31/12 de l'ann�e en cours.
{
age_enfant = parseInt($datesinis.substr(6,4)) - parseInt(annee);
}
//prendre indice ("date" + i) afin de remplir la case age correspondante ("age" + i)
if (age_enfant < 0)
{
document.forms["result_rpfa"].elements["age" + element.substr(4,element.length - 4)].value = 0;
}
else
{
document.forms["result_rpfa"].elements["age" + element.substr(4,element.length - 4)].value = age_enfant;
}
}
else
{
alert("La date de naissance entrée n'est pas valide(elle doit etre de la forme jj/mm/aaaa)");
document.forms["result_rpfa"].elements[element].focus();
}
}
//return res;
}

</script>

et je met le script sur cette input.

<input type='text' name='date".$nbexit."' size='12' maxlength='10' onblur=\" javascript:verifDate('date".$nbexit."');\">
</div>
0
Kratos60 Messages postés 56 Date d'inscription samedi 15 novembre 2008 Statut Membre Dernière intervention 2 mars 2012
27 déc. 2010 à 16:29
Bon j'ai trouvé comme un grand :)

Merci quand meme jonastuces :)
0

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

Posez votre question
jonastuces Messages postés 45 Date d'inscription vendredi 18 mai 2007 Statut Membre Dernière intervention 30 décembre 2010 24
30 déc. 2010 à 18:35
Bonjour Kratos60,

Désolé je n'ai pas pu me connecter avant.
Pas de soucis, n'hésite pas quand tu as besoin.

Bonne journée et bonnes fêtes de fin d'année.
0