Javascript verifier une date [Résolu/Fermé]

Signaler
Messages postés
56
Date d'inscription
samedi 15 novembre 2008
Statut
Membre
Dernière intervention
2 mars 2012
-
Messages postés
45
Date d'inscription
vendredi 18 mai 2007
Statut
Membre
Dernière intervention
30 décembre 2010
-
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

Messages postés
45
Date d'inscription
vendredi 18 mai 2007
Statut
Membre
Dernière intervention
30 décembre 2010
24
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.
Messages postés
56
Date d'inscription
samedi 15 novembre 2008
Statut
Membre
Dernière intervention
2 mars 2012

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...
Messages postés
56
Date d'inscription
samedi 15 novembre 2008
Statut
Membre
Dernière intervention
2 mars 2012

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>
Messages postés
56
Date d'inscription
samedi 15 novembre 2008
Statut
Membre
Dernière intervention
2 mars 2012

Bon j'ai trouvé comme un grand :)

Merci quand meme jonastuces :)
Messages postés
45
Date d'inscription
vendredi 18 mai 2007
Statut
Membre
Dernière intervention
30 décembre 2010
24
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.