CALENDRIER : ASSISTANT DE SAISIE DE DATE DANS UN FORMULAIRE

stepibou Messages postés 112 Date d'inscription jeudi 11 mars 2004 Statut Membre Dernière intervention 11 octobre 2006 - 14 mars 2005 à 20:57
mizushima Messages postés 27 Date d'inscription dimanche 15 octobre 2006 Statut Membre Dernière intervention 20 juin 2021 - 7 oct. 2009 à 21:51
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/30101-calendrier-assistant-de-saisie-de-date-dans-un-formulaire

mizushima Messages postés 27 Date d'inscription dimanche 15 octobre 2006 Statut Membre Dernière intervention 20 juin 2021
7 oct. 2009 à 21:51
// ON OUBLIE LA FORMULE DE ZELLER !
// il y a des fonctions en php qui font ça très bien : mktime et strtotime

// choisir comment construire le contenu de la variable qu'on va traiter par ces fonctions

// $date_strtotime = mktime(21, 52, 0, 2, 10, 96); // 21h 52mn 0s 2eme-mois 10eme-jour année
// $date_strtotime = strtotime("10 February 1996 21:52");
// $date_strtotime = strtotime("1996-02-10 21:52");

// je prends l'exemple avec les variables du script ici et la 2e version de strtotime en chiffres
// admettons que l'on récupère les variables
// $listJour = 15
// $listMois = 012007

// il faut d'abord dissocier le mois de l'année
// on récupère les 2 premiers chiffres de la chaine $listMois avec la fonction substr
$mois = substr($listMois, 0, 2)
// ça donne $mois = 01

// puis les 4 derniers chiffres pour l'année
$annee = substr($listMois, 2, 4)
// ça donne $annee = 2007

// on colle tout ça en concaténation pour respecter le format de strtotime("1996-02-10 21:52")
$formate_date = $annee.'-'.$mois.'-'$listJour.' 00:00';
// si on omet l'heure 00:00 ça fonctionne aussi dans une certaine mesure

// puis on traite avec la fonction magique strtotime

$date_strtotime = strtotime($formate_date);

// maintenant la variable $date_strtotime est un tableau
// qui contient peut-être toutes les valeurs de la foncton date()
// voir sur http://fr2.php.net/manual/fr/function.date.php
// j'ai pas tout testé :-)
// comme par exemple

$jour_numerique = date("d", $date_strtotime);
$mois_numerique = date("m", $date_strtotime);
$annee_4_chiffres = date("Y", $date_strtotime);

// et donc ce qui nous intéresse le plus, le jour de la semaine en anglais, YOUPI !

$joursemaine_anglais = date("D", $date_strtotime);

// $joursemaine_anglais aura alors une de ces valeurs :
// Mon, Tue, Wed, Thu, Fri, Sat ou Sun
// il suffit d'un array pour convertir en français
$convertjoursemaine_en_fr array ('Mon'> 'Lu.', 'Tue' => 'Ma.', 'Wed' => 'Me.', 'Thu' => 'Je.', 'Fri' => 'Ve.', 'Sat' => 'Sa.', 'Sun' => 'Di.');

// à la place de 'Lu.' 'Ma.' ...etc on pourrait bien sûr mettre 'Lundi' "Mardi'

$joursemaine_fr = $convertjoursemaine_en_fr[$joursemaine_anglais];

// et on affiche le tout

echo $joursemaine_fr.''.$jour_numerique.''.$mois_numerique.''.$annee_4_chiffres;

// soit : Lu. 15 01 2007

// merci à Dany qui m'a donné le tuyau ;-)
arnal69130 Messages postés 445 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 22 mars 2007 2
12 sept. 2008 à 07:51
Et la formule de Zeller dont tu parlais dans ton post du 17/10/06 ?
mizushima Messages postés 27 Date d'inscription dimanche 15 octobre 2006 Statut Membre Dernière intervention 20 juin 2021
11 sept. 2008 à 20:39
dans mon post du 15/10/2006 21:28:19 je demandais en 2°
comment récupérer dans le menu déroulant de la page index.php aussi le jour de la semaine pour le conserver avec la date dans la base
(parce que je trouve important de savoir quel jour de la semaine tombe une date, si tu me demande si je suis libre le 22 mars 2012 je te demande : "ça tombe quel jour de la semaine ?")

j'ai trouvé un site qui le fait,
celui des chemins de fer Belges
http://www.b-rail.be/main/F/

tu veux aller de
gare/arrêt : bruxelles
à
gare/arrêt : Geraardsbergen

tu laisses par défaut la date et le reste et tu cliques sur [RECHERCHER]

et oh miracle sur la page de confirmation on peut voir
date : Je, 11/09/08

donc avec le jour de la semaine,
il y a un petit calendrier dans une popup comme dans le script ici
et si je clique sur 12 septembre j'ai
date : Ve, 12/09/08

donc C'EST POSSIBLE JE VEUX CE SCRIPT ! :-))))))
mizushima Messages postés 27 Date d'inscription dimanche 15 octobre 2006 Statut Membre Dernière intervention 20 juin 2021
11 sept. 2008 à 20:08
bon alors puisque les codes de caractères spéciaux ne sont pas interprétés ici je redonne
le bon code php pour $convertmois
$convertmois array ("01"> "janv.", "02" => "fév.", "03" => "mars", "04" => "avril", "05" => "mai", "06" => "juin", "07" => "juil.", "08" => "août", "09" => "sept.", "10" => "oct.", "11" => "nov.", "12" => "déc.");
mizushima Messages postés 27 Date d'inscription dimanche 15 octobre 2006 Statut Membre Dernière intervention 20 juin 2021
11 sept. 2008 à 20:05
Réponse à la question de serialmother le 11/02/2007 21:05:45
"la date avec un espace entre le mois et l'année ou avec le mois en lettres."

en php c'est un jeu d'enfant, c'est la variable $listMois qui renvoie le mois et l'année collés ensemble,
donc déjà cette variable est mal nommée.

Il faut pour commencer une variable array (à plusieurs cases)
$convertmois array ("01"> "janv.", "02" => "fév.", "03" => "mars", "04" => "avril", "05" => "mai", "06" => "juin", "07" => "juil.", "08" => "août", "09" => "sept.", "10" => "oct.", "11" => "nov.", "12" => "déc.");

puis on extrait les deux partie qui nous intéressent dans la variable $listMois

si $listMois = 012007
01 c'est le mois donc le morceau de chaîne de caractère à partir de la position 0 (c'est à dire le premier caractère)
et d'une longueur de 2 carctères

$moisdate = substr($listMois, 0, 2);

2007 c'est l'année, le morceau de chaîne à partir de la position 2 (3e caractère)
et d'une longueur de 4 caractères

$anneedate = substr($listMois, 2, 4);

donc dans notre exemple

$moisdate vaut 01
$anneedate vaut 2007

pour afficher le mois en lettres

echo $convertmois[$moisdate];

c'est à dire janv.

voilà
arnal69130 Messages postés 445 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 22 mars 2007 2
11 sept. 2008 à 19:23
Bonjour,
Quelle est l'erreur remontée ?
frank_85 Messages postés 6 Date d'inscription lundi 10 octobre 2005 Statut Membre Dernière intervention 25 août 2008
11 sept. 2008 à 11:25
Bonjour,
je viens d'installer le script et malgré lecture de tous les posts je n'arrive pas à récupérer les différents éléments de date
afin de les utiliser pour un traitement de formulaire; j'ai essayé $listJour et $listMois mais cela me fait remonter une erreur.
Pour etre plus explicite sur mon but, je souhaite insérer ce script dans un formulaire qui comprendra d'autres champs puis effectuer un envoi par mail de toutes les données.
Un grand merci pour votre aide!
Frank
cs_Gecko62 Messages postés 25 Date d'inscription mardi 16 mars 2004 Statut Membre Dernière intervention 21 octobre 2012
21 janv. 2008 à 22:27
Pour utiliser deux fois ce formulaire, il suffit de nommer différement les paramètres associés

<tr>
<td>Date de début :</td>
<td>
" />
[#
]
</td>
</tr>
<tr>
<td>Date de fin :</td>
<td>
" />
[#
]
</td>
</tr>
Et voilà avec ce petit bout de code cela devrait fonctionner
BàV Gecko
jeanDresde Messages postés 1 Date d'inscription jeudi 11 octobre 2007 Statut Membre Dernière intervention 21 janvier 2008
21 janv. 2008 à 21:49
Désolé d'arriver après la guerre, mais j'ai la même question que azymuth :

Bonjour et bravo pour ce script !

Comment utiliser "proprement" ce script 2 fois dans le même formulaire afin de traiter par exemple un champ date début suivi d'un champ date fin ?

Est-ce qu'une âme charitable renseignerais un newbie comme moi ?
chris_du_05 Messages postés 3 Date d'inscription mercredi 21 février 2007 Statut Membre Dernière intervention 17 octobre 2008
7 déc. 2007 à 10:25
Cool ! Merci bcp pour ce code... J'te met une bonne note ;)
cs_azymuth Messages postés 1 Date d'inscription mercredi 29 juin 2005 Statut Membre Dernière intervention 20 février 2007
20 févr. 2007 à 00:41
Bonjour et bravo pour ce script !

Comment utiliser "proprement" ce script 2 fois dans le même formulaire afin de traiter par exemple un champ date début suivi d'un champ date fin ?

Merci
serialmother Messages postés 5 Date d'inscription lundi 3 mars 2003 Statut Membre Dernière intervention 11 février 2007
11 févr. 2007 à 21:05
Je n'arrive toujours pas à récupérer dans une deuxième page de mon formulaire la date avec un espace entre le mois et l'année ou avec le mois en lettres.
Une âme charitable pourrait t'elle m'expliquer comment intégrer la fonction :
function Mois_fr($mon)
au début de cette dexième page
pour que <? echo $listMois ?> soit lisible ?
serialmother Messages postés 5 Date d'inscription lundi 3 mars 2003 Statut Membre Dernière intervention 11 février 2007
25 janv. 2007 à 11:18
Bonjour,
Je reviens sur mon pb de récupération de données.
Dans le mail que je reçois avec les champs "$listJour" et "$listMois",
le mois est toujours collé à l'année et je n'arrive pas à faire d'espace.
Exemple 25 012007 - Comment faire pour récupérer 25 01 2007 ?
Est-ce possible ? Merci de me donner une piste...
mizushima Messages postés 27 Date d'inscription dimanche 15 octobre 2006 Statut Membre Dernière intervention 20 juin 2021
15 janv. 2007 à 21:16
AZERT
pour poster la date dans une autre page
regarde dans le script ici en haut c'est la ligne 115
<form name="formInsert" id="formInsert" method="post" action="index.php">
il suffit de modifier action="index.php" par l'url de la page dans laquelle tu veux poster
puis dans ta page tu récupère les 2 variables
$listJour et $listMois
regarde-le fonctionner ici
http://qatsi.free.fr/test-calendrier/index.php
dans mon test j'ai conservé action="index.php" parce que je veux une prévisualisation
la première fois qu'on arrive sur la page
$listJour et $listMois n'ont pas encore de valeur,
quand on poste dans index.php ils prennent les valeur du calendrier
$listJour = 15
$listMois = 012007
et cela grâce à l'astuce de
yakob59 le 20/05/2005 12:00:18
(que je remercie au passage)
les 6 lignes de php après function dateDansListe(){

et c'est là que je voudrais appliquer la formule de Zeller pour récupérer le jour de la semaine,
mais je n'ai pas encore fait de test... à suivre
azertr Messages postés 1 Date d'inscription jeudi 7 décembre 2006 Statut Membre Dernière intervention 14 janvier 2007
14 janv. 2007 à 15:36
Bonjour !!! Merci pr le code de calendrier mais j'ai du mal à le POSTER à une autre page comment je peux faire SVP ?
mizushima Messages postés 27 Date d'inscription dimanche 15 octobre 2006 Statut Membre Dernière intervention 20 juin 2021
16 déc. 2006 à 12:46
setlocale(LC_TIME,"fr") fonctionne chez free.fr et online.net
serialmother Messages postés 5 Date d'inscription lundi 3 mars 2003 Statut Membre Dernière intervention 11 février 2007
15 déc. 2006 à 21:58
Pour ceux que ça intéresse, pour que les jours soient bien affichés en français, il faut modifier le code suivant :

setlocale(LC_TIME,"") par setlocale(LC_TIME,"fr")ou setlocale(LC_TIME,"fr_FR")ou setlocale(LC_TIME,"fr_FR.ISO8859-1")
en fait, ça dépend des serveurs...
serialmother Messages postés 5 Date d'inscription lundi 3 mars 2003 Statut Membre Dernière intervention 11 février 2007
15 déc. 2006 à 21:38
Bonsoir mizushima,

Le calendrier fonctionne parfaitement bien en local sur mon PC avec easyphp, tout est en français.
Mais quand je le transfère sur mon serveur linux, tout passe en anglais. Je cherche à faire une modification pour le passer en anglais en local pour voir si ça va changer quelque chose sur le linux.
mizushima Messages postés 27 Date d'inscription dimanche 15 octobre 2006 Statut Membre Dernière intervention 20 juin 2021
15 déc. 2006 à 19:50
alors là le commentaire de serialmother le 15/12/2006 18:35:53
ça me dépasse totalement.
Le code de ce script est peut-être naturellement et logiquement fait comme ça,
mais à mon niveau, je n'y trouve rien d'intuitif qui permette de comprendre quelque chose a son fonctionnement.

En php quand je veux convertir les mois en clair et en français, je fais ça :
array ("01" => "janv.", "02" => "fév.", "03" => "mars", "04" => "avril", "05" => "mai", "06" => "juin", "07" => "juil.", "08" => "août", "09" => "sept.", "10" => "oct.", "11" => "nov.", "12" => "déc.");

mais dans ce script je ne trouve aucune trace de variable chaine en clair,
non plus de nom de mois en anglais d'ailleurs, je ne sais pas d'où vous faites sortir ça.

Pour la formule de Zeller, le fait que le calendrier automatique sache bien faire concorder les jour de semaine avec les date laisse présentir qu'il doit bien y avoir quelque part dans le code un traitement de ce genre pour retrouver si tel jour de tel mois est un lundi ou un dimanche non ?
Alors pourquoi ne pas pouvoir récupérer aussi cette donnée dans le formulaire au rechargement ?
serialmother Messages postés 5 Date d'inscription lundi 3 mars 2003 Statut Membre Dernière intervention 11 février 2007
15 déc. 2006 à 18:35
Bonjour,
Il a été répondu à jvergoby le 28/02/2006 d'utiliser la function Mois_fr($mon) //retourne le mois en lettre en français.

Dans la page suivante de mon formulaire, j'ai indiqué : <?=$listMois ?> qui s'affiche aussi "022006" et j'ai repris la fonction :
function Mois_fr($mon) //retourne le mois en lettre en français
{ setlocale(LC_TIME,""); return ucfirst(strftime("%B",strtotime("2002".sprintf("%02d",$mon)."01"))); }

mais la date s'affiche toujours en chiffre collé.

J'ai essayé d'insérer $listMois= Mois_fr($mm).' '.$anR;
ça reprend la date et l'année dans le bon format mais par défaut c'est le mois et l'année du jour :"décembre 2006"

Peux-tu m'indiquer s'il faut ajouter quelque chose à la fonction ? ou si c'est le $listMois qu'il faut modifier ?

merci
toniok05 Messages postés 2 Date d'inscription jeudi 8 décembre 2005 Statut Membre Dernière intervention 19 octobre 2006
19 oct. 2006 à 20:08
C'est encore moi ! Dans le post ci dessus il fallait lire : Comment faire pour afficher les dates en FRANCAIS SVP ??

Désolé pour l'erreur...
toniok05 Messages postés 2 Date d'inscription jeudi 8 décembre 2005 Statut Membre Dernière intervention 19 octobre 2006
19 oct. 2006 à 19:55
Bonjour à tous et bravo pour ce script.
J'ai le meme probleme que Mizushima, mes dates s'affichent en anglais.
Je n'ai pas modifié du tout la source...

Comment faire pour afficher les dates en anglais SVP ??
mizushima Messages postés 27 Date d'inscription dimanche 15 octobre 2006 Statut Membre Dernière intervention 20 juin 2021
17 oct. 2006 à 19:55
alors pour le 1er point, une erreur javascript ?
j'ai seulement copié les 3 fichiers de phpcs_source_30101.zip
et j'ai toujours les mois en anglais dans le menu déroulant "choix de date"
2006
October 2006
November 2006
December 2006
2007
January 2007
February 2007
et caetera

pour la formule de Zeller en php
z = (E(2.6 *mz -0.2) +jj + az + (az div 4) + (sz div 4) - 2* sz) modulo 7)
le E majuscule doit être l'entier, je vais faire des test je vous dirais

merci
arnal69130 Messages postés 445 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 22 mars 2007 2
16 oct. 2006 à 10:44
Salut Mizushima,

- Pour ton 1er point, tu dois avoir une erreur javascript, non ? quelle est-elle ?

- Pour savoir à quel jour de la semaine correspond une date, tu peux comparer cette date avec une date fixe dont tu connais le jour (pourquoi pas le 15/10/06=dimanche).
Par exemple -> Quel jour est le 05/06/07 ? Tu calcules le nombre de jour entre cette date et le 15/10/06 = 233 jours je crois (de tête, mais il faut utiliser des fonctions javascript ou php)
le reste de la division 232/7 est 2 donc le 05/06/07 sera un mardi.
Je ne connaissais pas la "Formule de Zeller", mais je pense qu'elle est plus simple (et plus propre) que mon raisonnement. En cherchant un peu, je suis sur que tu arriveras à l'écrire en php...

Arn;o)
mizushima Messages postés 27 Date d'inscription dimanche 15 octobre 2006 Statut Membre Dernière intervention 20 juin 2021
15 oct. 2006 à 21:28
Merci, je trouve ce code génial du fait que la récupération du choix dans calend.php arrive sur index.php en menus déroulants et pas en champs texte, je fais du php mais le javascript ça me dépasse complètement donc respect.

Deux petites questions
1°) je ne comprends pas comment on fait pour activer la fonction
function Mois_fr($mon) //retourne le mois en lettre en français
chez moi, les mois restent en lettre en anglais
quelque chose m'échape

2°) Puisque dans la popup calendrier, les jours de la semaine (Lundi, mardi... etc.) correspondent bien à la date (là encore c'est génial et ça me dépasse) serait-il possible de récupérer dans le menu déroulant de la page index.php aussi le jour de la semaine pour le conserver avec la date dans la base
(parce que je trouve important de savoir quel jour de la semaine tombe une date, si tu me demande si je suis libre le 22 novembre 2006 je te demande : "ça tombe quel jour de la semaine ?")
ou sinon y-a-t-il possibilité d'un post-traitement de la date pour le retrouver, je trouve sur google "Formule de Zeller" mais est-ce que ça se transcrit en php, je pousse peut-être le bouchon un peu trop loin :-)
merci
cs_gilels Messages postés 3 Date d'inscription mardi 1 mars 2005 Statut Membre Dernière intervention 4 avril 2006
4 avril 2006 à 11:55
Je veux dire que plutot que, lorsque je selectionne le lundi 3 par exemple, de recuperer la date sous la forme yyyy-mm-dd, je puisse recuperer le numero de la semaine, par exemple 32.
arnal69130 Messages postés 445 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 22 mars 2007 2
4 avril 2006 à 11:43
Salut,
Qu'entends-tu par extraire, à quel moment ?
cs_gilels Messages postés 3 Date d'inscription mardi 1 mars 2005 Statut Membre Dernière intervention 4 avril 2006
4 avril 2006 à 11:37
salut
Il y a t'il un moyen d'extraire le numero de la semaine ?
santy_lamy Messages postés 2 Date d'inscription vendredi 31 mars 2006 Statut Membre Dernière intervention 2 avril 2006
2 avril 2006 à 13:02
merci arnal pour la précision...
arnal69130 Messages postés 445 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 22 mars 2007 2
2 avril 2006 à 10:48
Salut,
Quel message d'erreur as-tu ?
Quelle est la version de php que tu utilises (>=4.2.0 ?)

Cette fonction retourne le reste de la division entière des 2 paramètres.
http://fr3.php.net/manual/fr/function.fmod.php

Tu dois pouvoir la remplacer par l'opérateur % :
Au lieu de
fmod(a,b)
utilises
a%b

if (fmod(($c-1),7)==0)
devient
if ((($c-1)%7)==0)
...

Arn;o)
santy_lamy Messages postés 2 Date d'inscription vendredi 31 mars 2006 Statut Membre Dernière intervention 2 avril 2006
2 avril 2006 à 10:17
slt tt le monde moi j'ai essayé d'éxecuter le code et j'ai un message d'erreur
sur le fichier calend.php ligne 99 il trouve pas la fonction fmod()
jvergoby Messages postés 30 Date d'inscription lundi 2 janvier 2006 Statut Membre Dernière intervention 31 octobre 2006
28 févr. 2006 à 17:16
Salut Arnal,
je te remercie pour ta réponse.

A bientôt.
arnal69130 Messages postés 445 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 22 mars 2007 2
28 févr. 2006 à 17:11
Salut,
Il y a au tout début du code, une fonction qui fait ce que tu veux :

function Mois_fr($mon) //retourne le mois en lettre en français

Arn;o)
jvergoby Messages postés 30 Date d'inscription lundi 2 janvier 2006 Statut Membre Dernière intervention 31 octobre 2006
28 févr. 2006 à 10:56
Salut Arnal,
je viens de récupérer ton code, il est super et facilement intégrable dans mes scripts. Nickel. Juste une question, je récupère dans deux variables le jour et le mois que j'envoie dans une autre page pour faire une entête de page. Mais j'ai un soucis avec la date. Elle est au format :
exemple pour 28 février 2006 : 28 022006.
Comment faire pour récupérer le mois février en lettre et non en chiffre ?

Merci
rvcg Messages postés 1 Date d'inscription jeudi 3 juillet 2003 Statut Membre Dernière intervention 3 février 2006
3 févr. 2006 à 21:15
Merci pour ce précieux code !

Comment alimenter une variable ($date par exemple) au format date avant insertion dans la bdd à partir de ton code ?
Comment aussi utiliser 2 fois le script dans un même formulaire ($datedeb,$datefin).

Merci.
arnal69130 Messages postés 445 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 22 mars 2007 2
3 févr. 2006 à 09:35
Salut ohmusan,

Au lieu de modifier le mois de départ, tu peux modifier l'année (dans calend.php):

//mois et année actuels
$anR=date("Y")-1;
$mm=date("m");

Arn;o)
arnal69130 Messages postés 445 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 22 mars 2007 2
3 févr. 2006 à 09:26
Salut GILELS,

Tu peux ajouter un test sur le jour, dans la boucle de construction du tableau de calend.php :

...
if ($j<=$nbj)//nb jours du mois {
$titre=ucfirst(strftime("%A",strtotime("200408".sprintf("%02d",$jsem+1))))." $jj/$mois/$an";
if (fmod($c,7)!=0) { //si pas 7e colonne
echo '[javascript:lien(',($j-1),'); ',$j,']';
} else {
echo $j;
}
} else {
echo '
';
}
...

Je n'ai pas tester, mais ça doit être qqch dans le genre.

Ensuite, il peut être judicieux d'utiliser un style pour ces jours là, par exemple en mettant le texte en gris...

Arn;o)
cs_gilels Messages postés 3 Date d'inscription mardi 1 mars 2005 Statut Membre Dernière intervention 4 avril 2006
2 févr. 2006 à 23:49
Salut et bravo pour ce petit calendrier bien pratique, il y a t'il un moyen de rendre non selectionnable certains jours , je pense aux dimanches par exemple.

Merci
ohmusan Messages postés 1 Date d'inscription dimanche 18 décembre 2005 Statut Membre Dernière intervention 15 janvier 2006
15 janv. 2006 à 13:37
Salut et merci pour ton code ! Depuis le temps que j'en cherchais un simple d'utilisation et propre !
Par contre, j'ai un piti pb : comme Yooooohito je voudrais pouvoir choisir des mois précédant le mois actuel mais en remontant au moins à 6 mois (voir un an)
Si je fais comme lui et que je mets "$mm=date("m")-12;", je me retrouve face à 12 fois "janvier 2006" mais pas trace de 2005...
J'ai bidouillé un peu mais sans obtenir de résultat satisfaisant... :(
HELP grand maître !

Merci encore
Utilisateur anonyme
11 oct. 2005 à 11:00
Oups, c'était tt simple et j'ai trouvé :

//mois et année actuels
$anR=date("Y");
$mm=date("m")-1;

Merci encore pour ton boulot
Utilisateur anonyme
11 oct. 2005 à 10:52
Salut et merci pour ton code.

Je voudrais le modifier (newbie inside) pour pouvoir sélectionner le mois précédent la date du jour : Est-ce possible? et pourrais-tu me mettre sur la piste stp.

Ex : on est le 11 octobre 2005, je voudrais pouvoir sélectionner une date de septembre 2005

Merci d'avance
arnal69130 Messages postés 445 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 22 mars 2007 2
26 juil. 2005 à 18:11
j'ai ajouté l'image au zip, mais tu peux bien prendre celle que tu veux !
Arn;o)
inabil Messages postés 2 Date d'inscription mercredi 13 juillet 2005 Statut Membre Dernière intervention 26 juillet 2005
26 juil. 2005 à 18:02
qd je telecharge le script, elle n'y est pas dedans?
envoie la moi si c possible par mail :
nazaca@caramail.com
merci
arnal69130 Messages postés 445 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 22 mars 2007 2
26 juil. 2005 à 17:55
cette croix rouge, c'est parce que l'image du "bouton" n'a pas été trouvée :

Il faut que tu places une image BCalend.gif dans ton répertoire.
C'est ton seul problème ?
inabil Messages postés 2 Date d'inscription mercredi 13 juillet 2005 Statut Membre Dernière intervention 26 juillet 2005
26 juil. 2005 à 17:49
non pas du tout, simplement a la place du calendrier il y a une croix rouge ecrit a coté calendrier
arnal69130 Messages postés 445 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 22 mars 2007 2
26 juil. 2005 à 17:45
->inabil, as-tu cliqué sur "calendrier" ?
as-tu un message d'erreur ?
as-tu un avertissement de pop-up bloquée ?
arnal69130 Messages postés 445 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 22 mars 2007 2
26 juil. 2005 à 17:43
Pour que tout le monde en profite, voila un message de inabil :

--- inabil :
bonjour,

voila, j'ai esseyé d'executer le code mais ça marche pas.
Est ce qu'il y a une MAJ ou le probléme viens de chez moi.
merci d'avance

--- arnal69130 :
bonjour,
chez moi ça marche !
quel est ton problème ?

--- inabil :
voila, il y a les deux liste qui s'affiche ,mais le calendrier pas

--- arnal69130 :
suite ici http://www.phpcs.com/code.aspx?ID=30101#commentaires
arnal69130 Messages postés 445 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 22 mars 2007 2
11 juil. 2005 à 10:27
Bonjour Matsuda,
Peux-tu préciser un peu ta question... Ton problème vient-il de l'envoi du formulaire en POST, de la requête d'insertion dans ta BD, ou de la récupération de $mois et $année distinctement à partir du champ $moisAnnée ?
Arn;o)
cs_matsuda Messages postés 10 Date d'inscription vendredi 30 avril 2004 Statut Membre Dernière intervention 10 février 2011
8 juil. 2005 à 13:53
merci pour cette code!!
Je me demande seulement comment récupérer la date est les stoker dans 3 variable $jour $mois $annee dan une base de donnée apré validation du date?
merci..
yakob59 Messages postés 4 Date d'inscription vendredi 5 novembre 2004 Statut Membre Dernière intervention 20 mai 2005
20 mai 2005 à 12:07
euh vous pouvez virer le alert(j.toString()); c'etait juste pour le debogage, pour moi mieux comprendre le truc.
En tout cas je le redis, MERCI ARNAL !
yakob59 Messages postés 4 Date d'inscription vendredi 5 novembre 2004 Statut Membre Dernière intervention 20 mai 2005
20 mai 2005 à 12:00
C'est bon j'ai reussi grâce à tes conseils arnal. A toute fin utile, je joint la nouvelle fonction dateDansListe()

function dateDansListe()
{
<?php if (isset($_POST["listJour"]) && !empty($_POST["listJour"]) && isset($_POST["listMois"]) && !empty($_POST["listMois"])) {
$mois=substr($_POST["listMois"],0,2)-1;
echo "d=new Date(" . substr($_POST["listMois"],2,4) . "," . $mois . "," . $_POST["listJour"] . ");\n";
} else{
echo "d=new Date();\n"; }
?>
Mois=1+d.getMonth();
chM=Mois.toString();
if (chM.length<2) { chM="0"+chM; }
An=d.getFullYear();
ch=chM+An.toString();
i=0;
while(ch!=document.getElementById("listMois").options[i].value)
{ i++; }
j=d.getDate();
alert(j.toString());
if (document.getElementById("listMois").options[i]) document.getElementById("listMois").options[i].selected = 1;
if (document.getElementById("listJour").options[j-1]) document.getElementById("listJour").options[j-1].selected = 1;
AffNbj();
}
arnal69130 Messages postés 445 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 22 mars 2007 2
12 mai 2005 à 10:54
salut yakob,
mieux vaut tard que jamais...
Il faut que tu regarde la fonction javascript Date() :
http://fr.selfhtml.org/javascript/objets/date.htm
Dans la fonction dateDansListe (index.php), dans mon script il n'y a pas de paramètre, donc on prend la date du jour.
Mais si tu mets une autre date en paramètre, c'est cette date qui sera sélectionnée.

En espérant t'avoir aidé,
Arn;o)
yakob59 Messages postés 4 Date d'inscription vendredi 5 novembre 2004 Statut Membre Dernière intervention 20 mai 2005
2 mai 2005 à 15:51
Salut arnal !
Il est très bien ton script, il marche a fond, mais ya un ptit truc que j'arrive pas à faire avec :
ton code est fait pour etre encapsulé dans un formulaire. Tout est ok pour cela, les données sont bien intégrées dans ma base de données.
Mais j'ai également créé un autre formulaire pour faire des modifications, et la, je n'arrive pas à récupérer la date entrée dans la base de données, il me met toujours par défaut la date du jour.
Pourrais-tu m'aider, car pour moi le php ca va encore mais le javascript !!!! :-/

Merci d'avance
cs_cedricM Messages postés 3 Date d'inscription vendredi 5 septembre 2003 Statut Membre Dernière intervention 29 mars 2005
29 mars 2005 à 13:57
Merci beaucoup pour ton aide et de ta réactivité ! Cela va me permettre d'avancer dans mon projet.
arnal69130 Messages postés 445 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 22 mars 2007 2
29 mars 2005 à 12:08
Là, tu rejoins le code initiale de cette source, sauf que tu as un champ texte au lieu de combos ;o)

L'utilisation de getElementById('...') est, à mon avis, la plus efficace, la plus propre, et la plus portable (ou standard, comme tu veux).

Mais forcément, elle implique de mettre un attribut id="..." dans la balise du champ auquel tu veux accéder.
Dans ton exemple, il n'y a pas d'élément dont l'id est "cp", donc ça ne risque pas de marcher ;o)

Essaie ça :

<script type="text/javascript">
function lien(test) {
window.opener.document.getElementById('champCP').value='test';
}
</script>

et

<form name="cp" action="valider.php" method="POST">

</form>

Voila, j'espère que ça t'aidera. Si ça ne marche tjs pas comme tu veux, décris un peu plus précisemment ton problème. Juste dire «ça ne marche pas» n'est pas très explicite ;o)

Arno
cs_cedricM Messages postés 3 Date d'inscription vendredi 5 septembre 2003 Statut Membre Dernière intervention 29 mars 2005
29 mars 2005 à 10:25
Merci de ta réactivité!
pour l'IFRAME c'est ok, j'ai réussi mais tu as raison ce n'est surement pas la meilleure solution...

du coup j'ai essayé ce que tu m'as dit mais en changeant le nom de l'iframe par le nom d'un formulaire, ca doit marcher aussi non?
J'ai regardé des ex sur selfHTML et voila le code que j'ai fait et qui ne marche pas....

dans le popup
<script type='text/javascript'>
function lien(test) {
window.opener.parent.document.getElementById('cp').champCP = test;
}
</script>

dans la page princpale:
<form name="cp" action="valider.php" method="POST">

</form>

Je dois forcement utiliser les zones (id=...) ?
si tu pôuvais me lacer sur la bonne piste..
merci d'avance :)
arnal69130 Messages postés 445 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 22 mars 2007 2
29 mars 2005 à 09:59
Content que ça t'aide à avancer !

Pour répondre à ta question, je pense qu'il est tout à fait possible de modifier un champ dans une iframe de la page appelante à partir d'une popup.
En revanche, j'utiliserais plutôt une syntaxe du type window.opener.getElementById('NomIframe').élémentAmodifier que l'attribut target. A voir...

Arn;o)
cs_cedricM Messages postés 3 Date d'inscription vendredi 5 septembre 2003 Statut Membre Dernière intervention 29 mars 2005
29 mars 2005 à 09:45
SUPER!!!!! je cherchais à faire cette source depuis longtemps!!!! Merci à vous deux!
On peut même penser à mettre une variable dans l'appel de la fonction lien()
du style:

function lien(test) {
window.opener.parent.document.location.href='pageprincipale.php?test='+test; }



Ce qui laisse pas mal de possibilités ensuite sur la saisie de liste déroulante etc...

j'ai une question en plus pour vous, je sais que c'est plus du javascript que du php mais elle colle parfaitement aux commentaires précédents.
peut on mettre à jour des infos dans une iframe (ou autres mais c'est la seule solution que je vois) de la page principale toujours à partir du popup, sans recharger toute la page principale (pour éviter de tout resaisir?
en utilsant target... ou un truc du stule peut etre...

Merci
zevak
arnal69130 Messages postés 445 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 22 mars 2007 2
16 mars 2005 à 11:34
NB : Je sais pas pourquoi, mais le code source affiché est légèrement différent de celui que j'ai posté :
En javascript, il faut bien écrire Date() et getDate() avec un d majuscule !!!
arnal69130 Messages postés 445 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 22 mars 2007 2
15 mars 2005 à 18:11
J'ai essayé d'arranger un peu ça.
Merci stepibou pour tes suggestions.

Arnaud
stepibou Messages postés 112 Date d'inscription jeudi 11 mars 2004 Statut Membre Dernière intervention 11 octobre 2006
15 mars 2005 à 14:57
un arnal , des arnox...
merci, c bon grace à toi, voici mon script :

je sais c du javascript, et on est sur phpcs, mais bon,
on peut malheureusement pas y echaper, les sources recentes le montre.

voila ca marche, mais je suis obligé de traiter le formulaire dans la popup. c'est mieux dans un sens car ca rafraichi la page principale : (pour ceux que ca interesse, ce script ouvre une popup, traite un formulaire dans la popup, et ferme automatiquement la popup...)

------script de la page principale : ------
[# inscrivez vous!]
<script type="text/javascript">
function Openpop() {
window.open('diaporama.php','Fenupload','toolbar=0,location=0,directories=0,status=0,scrollbars=0,resizable=1,copyhistory=0,menuBar=0,width=400,height=200'); }
</script>

------script de la popup : ------
<?php
traitement du formulaire... avec un if bien sure...
print("<script type='text/javascript'>\n");
print("window.close();
</script>");
?>
<head>
<script type='text/javascript'>
function lien() {
window.opener.parent.document.location.href='pageprincipale.php'; }
</script>
</head>

[javascript: window.opener.parent.document.location.href='pageprincipale.php';
window.close();
retour]
<form ...>

</form>

-----------------------------

tres bien, je te met 8 et pas 9, je t'explique pourquoi :
-dans tes balise html utilise des doubles quotes " et non '.
c'est mieux comme dirai grenard...
- le script marche mais je comprend pas tout y a pas de commentaire.
- et aussi y a des problemes dans l'insersion du javascript dans php : dans calend.php tu commence en javascript puis tu ouvre php à la ligne 44 alors que c le contraire c du javascript dans php. et surement encore des pbs de place de quotes,..

voila, bonne prog a tous <?php (o; !-) ?>
arnal69130 Messages postés 445 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 22 mars 2007 2
15 mars 2005 à 09:57
Salut Stepibou,
Si tu regardes d'un peu plus près mon calendrier, tu verras qu'il contient a un formulaire ;o)
Cela dit, dans ma source dans la popup on modifie la valeur d'un champ sur la page appelante.
Je ne suis pas sur que ce soit ça que tu veuilles faire, si ?

Dans ta popup, tu peux essayer de faire un formulaire avec action=popup, et au rechargement tu fermes la popup... ça donnerait un truc du genre :
/****popup.php****/
<?php
if (empty($_POST['ficUpload']))
{ echo "<form action='popup.php' ...>" formulaire d'upload..."; }
else
{ echo "<script type='text/javascript'>window.close();</script>"; }
?>
J'ai pas essayé, mais ça te permettera sans doute d'avancer...

Juste une petite suggestion, essaye d'écrire tes balises et attributs en minuscule, et avec des quotes autour des valeurs : [# ...]...

Au passage, il s'agit bien de javascript (et non pas de java qui n'a rien à voir) ;o) et les balises ouvrantes doivent être de la forme <script type="text/javascript">

a+
Arno
stepibou Messages postés 112 Date d'inscription jeudi 11 mars 2004 Statut Membre Dernière intervention 11 octobre 2006
14 mars 2005 à 20:57
hello arnal,

ca continue en php à ce que je vois,
c'est bien.

tu t'y connais pas mal en javascript, pas comme moi. ;-)

et c'est super cool, car c'est justemement ce que je cherchais, je galere en javascript, c un langage un peu chelou quand meme.

je veux ouvrir une popup, remplir un formulaire dans la popup ( avec upload), et l'envoyer dans la page principale, et fermer automatiquement la popup.
donc c un peu ce que tu fais sauf que t'as un calendrier, et non un formulaire dans ta popup.

j'ai essayé d'adapter un script tout nul et ca marche pas :
lien

<script language="Javascript">
function lien(url) {
eval("window.opener.parent.document.location.href='"+url'";");
window.close(); }
</script>

a metter dans le du lien:

onClick=lien('Page_a_appeler')

voila , donc si tu pouvais m'extraire de ta source, un script java et le reste, qui pourrai faire ca, avec dans la popup juste un bouton submit. ca serait tres sympas.

sinon je chercherai moi meme.

voila, sinon la source à l'aire tres bien. je noterai.

a+
Rejoignez-nous