begin process at 2012 02 06 02:18:14
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Date & Heure

 > CALENDRIER JAVASCRIPT

CALENDRIER JAVASCRIPT


 Information sur la source

Note :
9,26 / 10 - par 31 personnes
9,26 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Date & Heure Classé sous :calendrier, calendar, css, date Niveau :Initié Date de création :20/11/2005 Date de mise à jour :03/12/2007 16:55:32 Vu / téléchargé :111 791 / 14 162

Auteur : Anthed

Ecrire un message privé
Commentaire sur cette source (106)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
Un fichier js, une feuille de style, quelques images et c'est parti. Il suffit d'ajouter les quelques div du fichier htm à votre page et vous aurez un calendrier pratique pour mettre à jour vos zones de saisie de dates. De nombreux calendriers existent déjà mais celui-ci a l'avantage de ne pas être volumineux (10ko pour le js). Les modifications des images et de la feuille de style doivent suffir à le personnaliser à votre guise (plutôt rapide ...).


 Conclusion

Cette version est compatible IE / Firefox.

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

20 décembre 2005 23:24:33 :
Reconstruction du zip suite au problème rencontrés par certains pour le récupérer
03 juillet 2007 16:54:43 :
Ca faisait un moment que je devais le faire et ça y est : cette version est compatible IE / Firefox. La feuille de style a de plus subi un petit lifting. L'initialisation du calendrier a été quelque peu modifiée pour satisfaire aux exigences des deux browsers donc pour ceux qui auraient récupéré la précédente version et qui souhaiteraient se mettre à jour, je vous conseille de faire un petit diff entre l'ancienne et la nouvelle version du source html et du script. Merci encore pour vos différentes remarques ;-)
14 août 2007 10:47:16 :
Cette dernière version contient la correction du positionnement automatique du calendrier par rapport à la date déjà renseignée. Si la date est incorrecte (présence de caractères autres que des chiffres), le mois et l'année actuels sont affichés par défaut. Si un mois et une année sont corrects mais que le jour ne l'est pas (ex : 52/04/2007), le calendrier se positionne sur le mois et l'année renseignés (04/2007).
03 décembre 2007 16:52:13 :
1. Suppression du calendrier de la page principale. Seule une balise <div id="calendar"></div> doit être ajoutée. Le contenu du calendrier est généré en javascript (plus facile pour intégrer le calendrier sur de nombreuses pages. 2. Ajout de la possibilité de paramétrer un affichage différent des jours passés et/ou du jour courant.
03 décembre 2007 16:54:25 :
1. Suppression du calendrier de la page principale. Seule une balise <div id="calendar"></div> doit être ajoutée. Le contenu du calendrier est généré en javascript (plus facile pour intégrer le calendrier sur de nombreuses pages. <br> 2. Ajout de la possibilité de paramétrer un affichage différent des jours passés et/ou du jour courant.
03 décembre 2007 16:55:32 :
Premièrement : Suppression du calendrier de la page principale. Seule une balise <div id="calendar"></div> doit être ajoutée. Le contenu du calendrier est généré en javascript (plus facile pour intégrer le calendrier sur de nombreuses pages. Deuxièmement : Ajout de la possibilité de paramétrer un affichage différent des jours passés et/ou du jour courant.

 Sources de la même categorie

Source avec Zip CALENDRIER ANNUEL UNIVERSEL AVEC SAINTS DU CALENDRIER ET FÊT... par 007Julien
OBTENIR LE NOMBRE DE JOURS D'UN MOIS SUIVANT SON ANNÉE par hugolegrand
SAINT DU JOUR par tefa24600
Source avec Zip Source avec une capture NIPCLOCK 1.2 par neep
COMPTE À REBOURS POUR ÉVÉNEMENTS À RÉPÉTITION par CSIBern

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture MICRO-CALENDAR par amrounix
Source avec une capture AFFICHE UN CALENDRIER SOUS UNE ZONE DE SAISIE par amrounix
Source avec Zip 2 VERSIONS DE CALENDRIER DATEUR par jperre
Source avec Zip CALENDRIER par mlle_bee
UN CALENDRIER AVEC DES INPUT TEXT QUI CONTROLE LES ANNÉES BI... par philippe

Commentaires et avis

Commentaire de pierrealain6913 le 16/02/2006 15:51:51

Ce type d'application est exactement ce que je cherchais.
Cependant, j'ai testé ce script et j'ai un gros soucis qui le rend presque inutilisable :
Si le calendrier doit s'afficher dans une région où il y a une zone de liste (<select>...options...</select>), le contrôle zone de liste s'affiche toujours par dessus le calendrier et gêne le choix éventuel d'une date ou d'un jour particulièr.
Cordialement,
Salutations.

Commentaire de Anthed le 16/02/2006 21:18:00

Effectivement mais je crois que c'est le lot tout div. Pour palier à ce problème, il n'y a pas d'autre choix que de masquer les selects de la page pendant l'affichage d'un div. Pour ce faire, on peut affecter à tous les selects un style particulier. Il suffit alors, lors de la détection de l'affichage du div, de modifier la visibilité de la classe correspondante. On peut également affecter à chaque select un id spécifique (ex : select0, select1, ...) et boucler sur chacun :
function hideSelects()
{
  var i = 0;
  var element = document.getElementById("select" + i);
  while (element != null)
  {
    element.style.visibility = "hidden";
    i++;
    element = document.getElementById("select" + i);
  }
}
Lors du masquage du div, procéder de la même manière en réaffectant "visible" à chaque select.
A+.

Commentaire de Malekith10 le 10/05/2006 15:45:03

Super scrit! C'est exactement ce aue je cherchais et un des plus fonctionnel que j'ai trouve.

Commentaire de Anthed le 15/05/2006 23:44:25

Hello,
Concernant le problème évoqué ci-dessus sur les selects qui restent sur les div, je signale qu'afficher le div sur une iframe marche plutôt bien, pour ceux qui ne seraient pas emballés par l'idée de masquer leurs selects ...
A+.

Commentaire de jon007 le 30/05/2006 09:57:19

Dommage que le script ne marche pas chez moi sur Netscape et Mozilla :(

Commentaire de testone le 14/06/2006 16:18:47

salut

ce script ne fonctionne que sur IE 6 et Opera (execution sur IE, opera, netscape, mozilla)
dommage, c'est une vraie merveille, SVP qu'un developpeur JS le fixe
merci les amis :)

Commentaire de Nerolph le 29/11/2006 16:08:19

Il serait temps d'utiliser le DOM du W3C, non ?

http://www.w3.org/

Commentaire de PCPT le 01/07/2007 17:41:13 administrateur CS

salut,
quelle différence avec http://www.javascriptfr.com/codes/CALENDRIER-PARAMETRABLE-PERSONNALISABLE_34697.aspx ?
laquelle supprimer? ;)

Commentaire de Anthed le 02/07/2007 09:19:23

Hello, une version compatible Mozilla sera disponible très prochainement. Concernant la remarque de Nerolph, n'hésite pas à me faire signe dès que le but du W3C sera atteint (pas avant 2075 à mon avis). Enfin, pour PCPT, les 2 versions sont identiques, j'avais à l'époque rencontré un problème d'import de mes sources. Si un admin peut regrouper les commentaires des 2, il peut supprimer l'une des 2 versions.
A+.

Commentaire de PCPT le 02/07/2007 18:50:34 administrateur CS

regrouper non...
fait ton choix ;)

Commentaire de Anthed le 03/07/2007 11:12:38

Y a qu'à garder celui-ci alors :)

Commentaire de PCPT le 03/07/2007 11:28:42 administrateur CS

ok je supprime l'autre
et j'te mets un petit 10 pour celle-ci
très peu de modifs pour mes besoins, code clair, exactement ce qu'il me fallait :p

merci pour cette contribution ;)

Commentaire de PCPT le 03/07/2007 14:38:43 administrateur CS

y'a un petit bug tout de même : le 32 octobre ?
++

Commentaire de Anthed le 03/07/2007 15:17:57

Oui, il s'agit d'un jour bonus ! :)
Je vais tâcher d'y jeter un coup d'oeil ...
A+.

Commentaire de Nerolph le 03/07/2007 21:24:54

Au fait, il est sous quelle licence ce calendrier ? C'est pour connaitre les conditions d'intégration dans un projet.

Commentaire de Anthed le 04/07/2007 10:04:23

C'est un calendrier que j'ai fait de mon côté mais que j'ai déjà intégré dans différentes applications professionnelles (progiciel de prêts bancaires, application web de bourse en ligne). En le mettant à disposition ici, je suppose que quiconque peut le réutiliser. Si ce n'est pas le cas, je compte sur vous pour m'envoyer des oranges en prison ou pour me pistonner quand je pointerai à l'ANPE.

Commentaire de JLN le 14/08/2007 07:47:44

Bonjour et bravo pour ce partage !
Hors le bug signalé pour le 32 octobre, il y en a un autre et de taille, si le champs contient déjà une date, on se retrouve avec le calendrier en décembre 2006, même sur la page donnée en exemple. Il serait sympa d'apporter les corrections afin que le jour par défaut dans le calendrier soit celui qui se trouve dans le champs ou s'il n'y a rien ou date non valide, la date du jour. Le net plus ultra serait de remettre ici à jour.
Merci pour tout tes efforts et je met 9 à cause des petits bugs mais quand même il très bien ce calendrier.

Commentaire de Anthed le 14/08/2007 10:50:33

Merci pour tes remarques JLN :)

Je viens d'apporter la correction sur le positionnement du calendrier. Par contre, je n'arrive pas à reproduire le bug du 32/10. Si quelqu'un est tombé dessus, merci de m'indiquer si cela concerne un browser particulier et quel est l'enchaînement d'actions conduisant à cette erreur. Merci d'avance.

Commentaire de Nerolph le 14/08/2007 14:13:26

Quand je parlai de licence, c'était juste pour savoir si tu exigeais, ou pas, ton nom dans les sources, telle que le permettent (voire obligent) certaines licences libres (LGPL, par exemple).

Commentaire de JLN le 14/08/2007 16:23:37

Merci pour le correctif Anthed, pour le 32 je ne suis pas non plus arrivé à reproduire... Est-ce réellement fondé ?
Merci pour ton aide, car je maitrise pas mal le php mais encore assez le javascript pour me plonger réellement dans ta source... Pour ma part je l'utilise sur un site perso sur un serveur ou je n'ai pas ouvert l'accès, donc perso.
Bonne prog à tous,
@+ JLN

Commentaire de JLN le 14/08/2007 16:40:33

Je repost juste pour te demander s'il ne te serais pas possible de mettre en surbrillance le jour en plus d'être sur le bon mois ? Sinon pour le reste je viens de tester et c'est au poil ! Même en insistant sur l'année et autre je n'arrive jamais au 32/10...

@+ JLN

Commentaire de Anthed le 14/08/2007 17:06:16

Ok, merci JLN. Concernant la surbrillance, je vais voir ce que je peux faire pour que le jour précédemment sélectionné soit mis en valeur de façon différente de celui survolé par la souris.

Nerolph, je suis plutôt pro-open-source donc fais ce que tu veux. Si tu récupère des bouts de code à droite et à gauche et qu'à chaque fois, tu dois rajouter 'Un grand merci sincère et chaleureux à untel blablabla' dans le code, tu ne vas pas t'en sortir :) et je dis un grand 'ZUT' à ceux qui se prennent pour des grands maîtres du développement en exigeant que leur nom soit présent partout.

A+ tout le monde ;)

Commentaire de PCPT le 14/08/2007 17:33:39 administrateur CS

salut,
... maj testée, plus de bug du 32 octobre.
et très étrangement, plus de bug non plus avec l'ancienne version

j'étais (et suis) sous XP Pro SP1 :
FF 1.0.4.1 (je crois) =>  suis maintenant sous FF 2.0.0.6
IE 6.0 => inchangé
pas de SP ou autre maj quelconque

bizarre
++ ;)

Commentaire de Nerolph le 14/08/2007 17:54:39

Donc en résumé, ce bug était dû à l'interface chaise-clavier...
^_^

Commentaire de MatouFrog le 24/08/2007 08:58:13

Bravo pour ce calendrier... c'est exactement ce que je cherchais ! Merci à l'auteur de mutualiser ce genre de travail... RESPECT !

Commentaire de testone le 24/08/2007 12:45:48

Bonjour

Encore bravo pour ce calendrier, je confirme encore que c'est une vraie merveille comme je l'ai dit l'année dernière, sauf qu'il y a un tout petit bug dans le fichier calendar.htm

    <link href="stylesheets\calendar.css" type="text/css" rel="stylesheet" />
    <script src="scripts\calendar.js"></script>

faut juste remplacer le \ par / et tout fonctionnera sous ff et netscape
quoi qu'il en est, c'est une merveille :)

Commentaire de yodev le 03/10/2007 14:28:14 9/10

Super... juste petite bonus pour gérer affichage date passé / aujouird'hui :
dans le css, ajouter :
.today {background-color: #b68211; font-weight:bold;}
.beforeToday {background-color: #baac8f;}
Dans le js :

//dans le while de la fonction calendar :

if(today.getYear()==selDate.getYear() && today.getMonth()==selDate.getMonth() && today.getDay()==count){
element.className='today';
element.isToday=true;
}
if(today.getYear()>=selDate.getYear() && today.getMonth()>=selDate.getMonth() && today.getDay()>count){
element.className = 'beforeToday';
element.isBeforeToday=true;
}

// remplacer la function unhighlightDay

function unhighlightDay(evt) {
el = getEventElement(evt);
if(el.isBeforeToday)
el.className = "beforeToday";
else if(el.isToday)
el.className = "today";
else
el.className = "";
}

// et ça fait un affichage différent pour les dates passée / aujourd'hui et future...
@+

Commentaire de yodev le 03/10/2007 14:30:35

J'ai oublié avant le while :

remplacer

j = (new Date(calendar.cyear, calendar.cmonth-1, 1)).getDay();

par :

var selDate = new Date(calendar.cyear, calendar.cmonth-1, 1);
var today = new Date();
j = (selDate).getDay();

@@+++

Commentaire de survivorr le 05/10/2007 15:47:01

Bonjour
Merci tout d'abord pour ce script,j'essaie de l'utiliser dans une page JSP mais je ne sais pas les balises que je dois ajouter à mon fichier JSP pour que ça marche.

Merci d'avance

Commentaire de JLN le 05/10/2007 17:21:37

Petite précision au sujet de la modif proposée par YODEV c'est la fonction "fillCalendar" et non la fonction "Calendar" pour les néophite que nous sommes, c'est moins pénible à rechercher.

Sinon merci à ANTHED pour ce script génial et à toi YODEV pour ce petit plus et si j'osai... Ne sarai-t-il pas possible de colorer le jour de la date figurant dans le champ sur le calendrier tout comme on le fait pour la date courante ? Si oui comment s'y prendre, le javascript est pour moi (et bon nombre d'entre nous) trop inconnu pour prétendre une modif qui ne mette pas tout en l'air.

Merci beaucoup.
@+ JLN

Commentaire de ylebailly le 06/10/2007 14:32:03

Salut JNL, je t'avourai que c'est ce que je voulais faire à l'origine, mais il faudrait revoir la façon dont les classes CSS sont défini (je bosse sur plein de truc en même temps, pas trop le temps de regarder ...). Sinon, tu peux le faire direct dans le code javascript mais c'est moins propre ... par exemple pour la date du jour en rouge :

//dans le while de la fonction fillCalendar :

if(today.getYear()==selDate.getYear() && today.getMonth()==selDate.getMonth() && today.getDay()==count){
element.className='today';
element.isToday=true;
element.style.color='red';
}
if(today.getYear()>=selDate.getYear() && today.getMonth()>=selDate.getMonth() && today.getDay()>count){
element.className = 'beforeToday';
element.isBeforeToday=true;
}

// j'ai pas testé, mais ça devrait marcher ...

PS : désolé pour le 'fillCalendar' de mon post d'avant ...
+++

Commentaire de JLN le 07/10/2007 09:11:30

Bonjour,
     Si je comprend bien YLEBAILLY = YODEV peu importe un grand merci en tout cas, mais je ne sais pas si c'est moi, car plus d'affichage spécial aujourd'hui dans le calendrier, malgré les modifs, je suis vraiment bon à rien... Pourtant pour être sure avant de poster, je suis repartie de l'original et j'ai refait les modifs et rien ???
Bon j'y retourne et si je trouve mon éventuelle erreur je reposte.
Merci beaucoup pour ton aide.
@+ JLN

Commentaire de Zeroc00l le 13/11/2007 15:14:58

Tu nous donnes ton num de carte bleu pour les royalties ? :p
Nan sérieusement ...
Pour mon premier site web (un intranet en fait) c'est exactement ce que je cherchais !
Intuitif et apparemment sans bug !
Merci beaucoup :)
En plus t'a fait une démo sympa et sans prise de tete, les gens le font pas souvent...
10/10

Commentaire de Zeroc00l le 13/11/2007 15:17:29 10/10

Oops pas fait gaffe que maintenant il fallait noter en même temps que l'on commente, d'où ce message ...
Pas de possibilité de changer sa note Messieurs les admins ?

Commentaire de econs le 13/11/2007 16:34:26 administrateur CS

C'est toujours possible en le demandant. Mais comme tu as mis 10/10 (5 étoiles) et que dans le message précédent, tu disais vouloir lui mettre cette note ... on change ou pas ?

Commentaire de Zeroc00l le 13/11/2007 17:06:09

Je souhaitais simplement qu'il y ait un seul commentaire avec la note.
Bref je reviens juste pour dire que dans le fichier calendar.html y'a une petite faute sur le dernier div, deux onclick se suivent :
onclick="increaseYear();" onclick="incrementMonth();"

J'en profite poser quelques questions :

1) Pourquoi à chaque fois que je trouve un script sympa les variable et les fonctions sont en vrac dans le fichier (pas a l'interieur d'une seul fonction en vue d'e nfaire une classe PROPRE et sans risque de collision) ?

2) Ne serait-il pas plus sympa / propre de generer également un div en position absolue, et d'y incoporporer le code HTML du calendrier dynamiquement ?
Bref c'est ce que je vais faire, au final j'aurai juste à taper :

<script ... src="calendaer.js">
<input onclick="javascript:(new PopupCalendar(path_vers_les_images, id_input)).Popup();"

Au vue de la quantité de source ou ce n'est pas "propre" à mon sens ( == sous forme de classe) je me demande si y'a encore des choses importantes que j'ignore à propos du javascript ... :S

3) N'y a-t-il personne qui deteste les accolades à la K&R à part moi (== cad en fin de ligne et non pas aligné avec les accolades fermantes) ?
Ou bien est ce que tous le monde le fait pour une raison que j'ignore.
(hypothese : certains navigateurs trouvent une erreur si les accolades ne sont pas en fin de ligne ?)


Commentaire de Anthed le 13/11/2007 18:18:29

1) il me semble que les variables globales et les variables internes sont à leur place ...

2) je n'ai pas eu recours à cette solution pour une question de performances. Dans le cas où plusieurs zones de saisie de date sont présentes dans une même page, cela permet de n'instancier qu'un objet commun.

de plus : 'code plus propre sous forme de classes' : ce n'est pas du java et c'est même fondamentalement différent. Pour la petite histoire, le terme javascript a été choisi à l'époque parce que le langage java avait un certain succès à ce moment, c'est tout.

3) les accolades, c'est comme chacun veut, du moment que l'accolade fermante est alignée avec le mot clé associé (if, for, while, ...) c'est propre.

Tchô :)

Commentaire de Zeroc00l le 16/11/2007 04:16:24

Il est possible de déclarer des variables statiques ...
Donc même si il y'a plein d'instances ... on peut se débrouiller pour que si une instance Popupe (du verbe Popuper si si ! :p), elle fasse disparaitre les autres.
Au final ça fournit aux instances un comportement qui ressemble aux menus contextuels : Deux instances ne peuvent être popupé et visible en même temps.
Je vrai "proprifier" le code quand j'aurai plus rien à faire...
Interessé ou pas par le code proprifié ?

Commentaire de Anthed le 16/11/2007 08:56:13

Les variables statiques sont déclarées au début du fichier : monthInYear et dayInWeek

L'instance unique de calendrier, puisque comme tu le dis, il ne peut y en avoir qu'un affiché à la fois, est déclarée juste après : var calendar = new Calendar();

Suivent les fonctions codées et écrites proprement : toutes les normes de codage sont respectées.

Tout ça pour dire que je ne vois pas trop où tu veux en venir. Le principe que tu énonçais précédemment (le 13/11/2007 17:06:09) de tout mettre dans une seule classe ne 'proprifiera' pas grand chose, ça te fournira simplement une mise en forme javaifiée (t'as vu, moi  aussi, je suis super fort en néologismes ;) ) sans grand intérêt : pas plus performant, pas plus lisible.
Le nom du fichier suffit d'après moi à comprendre que son contenu gère le calendrier. A partir du moment où tu sépares tes traitements javascript dans différents fichiers en fonction de leur rôle, tout va bien je pense.

A+.

Commentaire de Zeroc00l le 30/11/2007 17:48:17

Ne prend absolument pas ma remarque comme une critique méchante.
C'était juste une opinion personnelle.
Le but de cette critique est avant tout d'avoir des explications sur le pourquoi de cette façon de faire (que quasiment tout le monde partage sur javascriptfr) ou alors de me remettre en question par rapport à ce que je croyais savoir.
(Je ne dis pas que tu l'a mal pris mais je préfère être absolument clair :)).

je ne cherche pas la performance (je suis d'accord que ça ne change rien).
La lisibilité, même si j'en suis sensible, n'est pas non plus en question.
Ce que je n'aime pas c'est aussi l'html directement dans la page ...
J'ai plein de code récupéré un peu partout et au final on sait plus quoi appartient à quel bout de js quand on a une page complexe.
J'aime le code très organisé, et j'ai rencontré un cas bizarre ou un argument n'était pas utilisé dans une fonction au profit d'une variable plus globale du même nom ! Bref une erreur vicieuse.. (je crois que j'ai même gardé un fichier pour illustrer la chose.)

Au final j'aime bien l'action unique quand j'ai envie de quelquechose.
Je veux un truc boum j'inclu un fichier (une seule action) et hop je peux l'utiliser.
Je n'ai pas à :
-- Inclure le js
-- Copier le code html (le retrouver déja, le mettre en commentaire dans le js ... c'est moyen :D)
-- Vérifier qu'il entre pas en collision avec d'autre variable ...
Alors qu'ajouter un fichier.js ( == une classe) je trouve ça plus simple et plus modulaire.
Et c'est pas la place que prend "function MaClass { }" :p qui grossit le code
(normalement si on fait cela très proprement on compresse aussi le js...)

Autre petite remarque : Générer le calendrier (l'html) dans le js permet également de le compresser (boucle js ...) et sans le js ça fait une page html plus propre (que le contenu et pas les outils et l'interface).

Encore un opinion perso qui ne prend appui que sur mes 2 seul mois de web dev :)
(ca vaut ce que ca vaut, dite moi si j'ai tort surtout) :
Je trouve ca crade d'avoir des choses cachés (visible) ou non affichés (display) dans une page si ce n'est pas pour utiliser avec du js...
Hors si js est désactivé ca évite de télécharger un truc qu'on utilise pas !

Que penses tu de tout ça ?

Commentaire de ewbs le 02/12/2007 00:51:21

Génial et bravo, c'est tip top ce que je cherchais! Mais j'ai voulu aussi installer l'extension de Yodev (pour mettre en couleur differemment les jours passés) mais ça ne change rien. :-(
Si qqun à la solution à ce bug

Commentaire de Anthed le 03/12/2007 09:38:45

A l'attention de ZerocOOl,

Concernant l'utilisation d'une classe, je n'ai pas grand chose à rajouter par rapport à ce que j'ai déjà dit. Si tu préfères du javascript version java, libre à toi (pourquoi pas).

Générer les composant html du calendrier depuis le fichier js plutôt que l'intégrer directement à la page concernée est en revanche une bonne idée (plus facile à intégrer et à mettre à jour en cas de présence sur plusieurs pages).

Pour info, je signale que j'avais réalisé la première version de ce calendrier dans le cadre professionnel et une des devises à méditer dans ces circonstances est : "Le mieux est l'ennemi du bien". Les impératifs de développement et les délais de livraison font qu'on n'a jamais assez de temps pour réaliser quelque chose de parfait. L'idéalisme poussé à l'extrême n'est pas rentable ...

Pour finir, je tâcherai de fournir une version prochainement avec une couleur différente et la possibilité de désactiver les liens associés aux jours passés.

Merci à tous pour vos différentes remarques. A+.

Commentaire de Zeroc00l le 03/12/2007 16:32:27

Oui j'imagine bien que niveau delai de livraison ... :)
J'ai pas mal lutté pour faire du DHTML (planning modifiable à la souris) debug etc ...
En revanche je suis stagiaire là, donc j'ai du temps à perdre :p,
d'où ma quête du parfait :)

Petite préférence perso sur l'esthétique :
Je trouve que le haut du calendrier est un peu encombré et on met quelque seconde avant de "voir" comment ça fonctionne (est ce moi qui ait du mal ? :p)
Solution proposée :
- Faire passer la flèche "suivante" pour le mois et l'année à droite de ces derniers.
- Supprimer les fleches "bas" (de toute façon, la fonctionalité reste si on clique sur les noms)

Voili voilo !

Commentaire de Zeroc00l le 03/12/2007 16:35:26

Ah j'oubliais un autre argumetn en faveur de la generation dans les js
j'ai essayé les masterpages (asp.net) hier et tous les id sont prefixés,
donc ca fout en l'air le code js ... :/

Autre idée :
- Quand la souris est en dehors du calendrier trop longtemps :
   simuler le clic sur la corix (ferme la fenêtre)

Commentaire de Anthed le 03/12/2007 17:07:50

Côté esthétique, ton idée est bonne mais je ne touche à rien : les goûts et les couleurs ...
Par contre, le fait que le contenu du calendrier soit à présent généré depuis le fichier js fait que chacun peut modifier l'ordre à sa guise.
A+.

Commentaire de Zeroc00l le 06/12/2007 15:17:38

Pas bête l'idée de différencier les jours avant le jour actuel !
On y gagne on lisibilité.

Commentaire de ffert le 06/01/2008 20:53:10 10/10

BRAVOOOOOooooo !!!!!!!! (note : 10)

je l'ai intégré à ma classe autoformulaire en PHP !!! ça marche du tonnerre !!!...
merci beaucoup parceque le javascript c'est pas mon fort...

(ps : NE PAS OUBLIER D'AJOUTER <div id="calendar"></div> sinon ça marche pas !!! j'ai passé une demi/heure à me demander si savais encore programmer... :p oui je sais.. mais bon c'est dimanche soir alors faut pas trop en demander non plus...)

Nota : le format du champs retourné est : date française DD/MM/YYYY, est-ce qu'il y a la possibilité de retourner une date YYYY-MM-DD (un paramètre de plus qui permettrais de choisir du genre : displayCalendar('name', 'format', event); ).

à propos du multilangue, je me suis permis une petite modif : les deux premières lignes je les ai mises dans un autre fichier nommé : calendar.lang-fr.js  (pour gérer le français)

var MONTH_LIST = new Array("janvier", "février", "mars", "avril", "mai", "juin", "juillet", "août", "septembre", "octobre", "novembre", "décembre");
var DAY_LIST = new Array("Lun", "Mar", "Mer", "Jeu", "Ven", "Sam", "Dim");

ce qui me permet de créer un autre fichier nommé : calendar.lang-en.js   (pour gérer l'anglais)
var MONTH_LIST = new Array("January", "Febrary", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December");
var DAY_LIST = new Array("Mon", "Tue", "Wen", "Thu", "Fri", "Sat", "Sun");

j'ai ensuite un script PHP qui me trouve la langue et la stocke dans une variable de session ("lang") ce qui me permet de faire cet insertion en début de page dans le head.
$output .= '<script src="scripts/calendar.lang-' . $_SESSION["lang"] . '.js"></script>';

et ça marche trés bien...

encore une fois bravo pour ce merveilleux code (trés propre, j'arriverais presque à comprendre le javascript avec ça :p) !!!....

cordialement.

Commentaire de Thierry_ZT le 04/02/2008 15:06:25 10/10

Super code, enfin un compatible DOCTYPE.

Merci.

Commentaire de Charles72 le 14/02/2008 19:50:21

Excellent code, il correspondait parfaitement à ce que je cherchais (il manque peut être juste un peu de commentaires, mais bon ;-) )

Une remarque au passage, je pense qu'il y a une petite erreur dans le code javascript à la ligne 336 :

> var testDate = new Date(y2, m2 - 1, 1);

Il me semble que ça devrait plutôt être (comme dans la méthode getMonthLastDay) :

> var testDate = new Date(y2, m2 - 1, 29);

Sinon cela pose problème pour la sélection automatique du jour lorsque la date dépasse le 28 du mois.

Merci encore pour ce code.

Commentaire de Charles72 le 14/02/2008 19:52:52 10/10

Juste un petit commentaire en plus pour mettre la note que j'ai oubliée ^^

Commentaire de jymont le 06/03/2008 10:01:51

Bonjour et merci pour ce calendrier.

J'essaie de faire un truc avec mais je bloque un peu (je débute en Javascript). J'essaie d'intégrer un compteur qui compte le nombre de jours entre le clik sur la première date et le click de la 2ème date, tout en ignorant le samedi et dimanche, et plus tard les jours fériés qu'on définira.

Bref que le compteur ne compte que les jours "ouvrés" quand on selectionne les 2 dates.

Si vous avez une idée je suis preneur, merci d'avance :)

Commentaire de zealth le 07/04/2008 09:06:01

Bonjour,
Lorsque je télécharge le fichier ZIP, mon antivirus me sort:
"Le fichier javascriptfr_CALENDRIER-JAVASCRIPT___Page.zip contient le virus Compressed_Huge_File"...

Commentaire de Anthed le 07/04/2008 17:10:21

Tu as peut-être un antivirus qui s'affolle dès qu'il rencontre un fichier javascript.
Obtiens-tu le même résultat si tu essaies de télécharger le fichier unitairement : calendar/scripts/calendar.js ?

Commentaire de PCPT le 07/04/2008 19:49:51 administrateur CS

non c'est dû aux sécurités de ton parefeu (ou celui de ton entreprise)...

Commentaire de ringon le 30/04/2008 19:31:42

Bonjour je ne comprends pas comment insérer ce calendrier dans une page HTML.
A+

Commentaire de bassouma10 le 25/05/2008 13:37:31

bonjour
merci beaucoup pour sette calendrier.
mais ect ce que qh'ila y a une possibilite de changer la forme de date à YYYY-MM-DD pour l'enregister dans ma base mysql car les autres format n'enregistrent pas dans ma base
merci

Commentaire de patricklane le 30/05/2008 19:48:45

Bonjour Anthed,
Merci pour cet excellent code qui cadre exactement avec ma recherche.
Ton code est très clair, très aéré, tes règles de codage sont excellentes, les noms des variables explicites... Bravo.
Avec très peu de connaissances en javascript, j'ai pu l'adapter exactement à mon besoin.
Pour un peu, on en redemanderais. Alors si tu en as d'autres comme celui là, n'hésite pas.
Encore bravo et merci.

Commentaire de patricklane le 31/05/2008 22:13:17

Bonjour Anthed,
Je voulais juste te signaler un petit bug pas bien grave qui crée le phénomène suivant :
aujourd'hui, nous sommes le 31 mai et tous les mois comportant 31 jours jusqu'à la fin de l'année ont leur jour 31 coloré comme un jour "today".
Ceci est créé à la ligne 701 du fichier "calendar.js" par un test "<" à la place de ">".
Le test "<" est déjà fait à la ligne 699. J'ai testé après la correction en ">" et je n'ai plu que le 31 mai qui soit "today".
Encore bravo et merci pour ton code.

Commentaire de adenismael le 04/06/2008 16:52:17

bonjour,j'utiliser ce meiveilleux calendrier pour mon pfe.
Comment je fais pour que le calendrier reste visible apres avoir choisis la date?
merci

Commentaire de adenismael le 05/06/2008 11:18:06 10/10

merci pour ta gentillesse,respect pour ton altruisme et felicitation pour le code

Commentaire de Anthed le 05/06/2008 15:40:43

Hello,
Quand tu choisis un jour, c'est la fonction selectDay() qui est appelée. A l'intérieur de celle-ci l'appel à la fonction hideCalendar() permet de masquer le calendrier. Tu peux donc supprimer cet appel pour conserver le calendrier visible après avoir choisi ta date.
Tchô.

Commentaire de speedbad le 17/06/2008 04:15:28 8/10

Bonjour, Ce script est pas mal, mais je me permets d'apporter une petite soluce a un bog avec certain Doctype.
En effet lorsque l'on joue avec les dimensions/placements il faut dorénavant préciser "px" ou "%" sinon ce n'est pas pris en compte et le calendrier reste à l'emplacement initial de la div.

donc pour la fonction initElement rajouter +"px"; à la fin des lignes 279,281,284,286 et 289 à 292.

Ensuite pour éviter que le scroll ne remonte tout seul au click sur certain navigateur avec les liens, remplacer l'appel de la fonction:
javascript:displayCalendar('w0', event);
par
return displayCalendar('w0', event);
et rajouter return false; à la fin de la fonction displayCalendar ligne 353.

merci pour le code en tout cas.

Commentaire de speedbad le 17/06/2008 22:09:52

J'oubliai, pour le scroll il faut remplacer
document.body.scrollLeft
document.body.scrollTop
par
document.documentElement.scrollLeft
document.documentElement.scrollTop

Dans initElement, toujours pour le même problème de placement.

Commentaire de jonorange le 13/08/2008 17:35:52 9/10

Bonjour, cette source est vraiment très chouette, j'ai passé pas mal de temps a chercher un calendrier simple-clair-customizable et compatible mozilla-ie

tout content de cette trouvaille, je teste le script avec la page calendar.html sur mon serveur, et l) ca fonctionne sur ie (et plus sur Firefox !!

apres avoir relu tout les coms de cette pages. je trouve la solution :
ca viens juste du \ qu'il faut remplacer par / au debut du fichier
<script src="scripts\calendar.js"></script>  deviens  <script src="scripts/calendar.js"></script>  


mais voila.. vous allez rire.. une fois intégrer a mon formulaire php.. ça fonctionne sur firefox mais plus sur ie 6
qui me dis dans la barre d'état qu'il y a des erreur sur la page
je ne comprend vraiment pas d'où ça viens.. il n'aime pas les div dans les div peut-être ?

si quelqu'un a eu le même pbm .. ou a une idée je le remercie de me donner un coup de main

merci pour la source en tout cas

Commentaire de Anthed le 14/08/2008 08:04:47

Bonjour,
Rien de tel, dans ce cas, qu'un petit passage en debug (avec FireBug par exemple).
A+.

Commentaire de Slyders le 20/08/2008 15:00:36

Ne marche pus sous FireFox 3

Commentaire de Slyders le 20/08/2008 15:21:16

Désolé enfaite si, il suffit de faire quelques modifs.

Commentaire de Zeroc00l le 20/08/2008 15:45:39

Ca serait cool si tu donnais les modifs à faire !

Commentaire de Slyders le 25/08/2008 10:26:45

Ce qui est écrit plus haut, c'est à dire dans ta page :
<link href="../ressources/stylesheets/calendar.css" type="text/css" rel="stylesheet" />
<script src="../ressources/script/Calendar.js"></script>

Appeler le calendrier avec <div id="calendar"></div>

et appeler avec  
<input type="text" id="w1" value="" disabled="true" name="madate" size="12" maxlength="256" />
<img class="but_cal" src="../ressources/img/calendar.jpg" onclick="displayCalendar('w1', event);" alt="Calendrier"/>

j'ai mis mes scripts/img/css dans un dossier /ressources/

Commentaire de Thierry_ZT le 29/08/2008 13:06:45

Bonjour,

Chapeau pour ce script, je l'utilise actuellement pour enregistrer des dates dans une base access mais je souhaite migrer le système sur mysql et alors là grosse galère. Le format de la date ne correspond pas à la norme us.
Du coup la date est à 0 dans la base.
Je voudrais juste savoir si c'est simple de remplir 2 champs dans le formulaire lorsqu'on clique sur une date. ex:
Champ1fr (avec la date au format français dd/mm/yyyy comme actuellement)
Champ1us (avec la date au format US yyyy/mm/dd) qui sera en hidden dans le form

Merci.

Commentaire de Slyders le 29/08/2008 14:58:01

J'ai pas assez approfondi le code pour te répondre, cependant tu peu utiliser en SQL lors de ton insertion les fonction Year(tadate) Month(tadate) Day(tadate) et concaténer ça dans une nouveau champ.

ou encore http://fr2.php.net/date (google friend).

Commentaire de Tuttu le 14/10/2008 12:19:31 10/10

Très bon script qui m'est bien utile. Un grand merci. :)

Commentaire de kitati le 15/10/2008 14:41:44

de meme joli script qui me sert enormement. un grand merci pour ce travail

Commentaire de alain18 le 12/11/2008 14:57:48

Bien-sur je suis super satisfait de ce calendrier, je souhaiterais qu'il s'affiche automatiquement sans a avoir a cliquer sur l'icone. Si qq a une idee je suis preneur, le probleme a ressoudre concerne le event qui est envoye au JS et la je patauge. Il faudrait que cela marche aussi bien sous IE que FF et autres.
Merci d'avance

et bien-sur je met une note a ce super code

Commentaire de alain18 le 12/11/2008 14:59:48 10/10

ma note

Commentaire de fix23 le 18/11/2008 12:07:57

parfait : mise en place rapide, code clair et précis
ça marche du tonnerre !!

Commentaire de totorlecador le 04/01/2009 16:14:29 10/10

Bonjour a tous , et bonne année. Tout d'abord merci à tous ceux qui nous aident, j'ai souvent utilisé des codes trouvés ici, mais là j'avoue (trés humblement) que je suis perdu . Ma question est la même que celle de ALAIN18, a savoir comment faire pour que ce le calendrier soit affiché en permance sans passer par le OnClick ?
Au fait chez moi ça fonctionne sous IE Firefox et googlechrome
D'avance merci

Commentaire de ybouane le 11/01/2009 06:08:13

assez long comme code mais bon je pense qu'il faut se pencher un peu plus dur le design. pour l'instant, j'utilise:
http://www.supportduweb.com/scripts_tutoriaux-code-source-9-faire-un-calendrier-en-javascript-avec-un-effet-de-transparence.html
merci :) et bravo pour ton travail

Commentaire de jakoura le 08/02/2009 05:59:26

Merci bcp!!!! c'est magnifique!!

Commentaire de Usaf le 10/03/2009 11:55:19 8/10

Bonjour,

Est-il possible d'utiliser le format dd.mm.yyyy (. a la place de /) ? si oui ou faut t'il modofier ça ?

Merci

Commentaire de bj33 le 14/04/2009 15:38:57

salut

erreur css :

color:#FFFFFF; visibility:hidden; font-style:normal; font-variant:normal; font-weight:bold; outset; white-space: nowrap}

outset; n'à rien à faire là. coquille!

deux warning js :

deux variables non déclarées, ajoutez var i; var j; dans function addMonthDiv(calendarDiv)

et de manière generale pour supprimer les warnings css :

les tailles de polices en dessous de 9pt/px ne fonctionne pas sous mac, içi elle sont à 8, quand on bosse, comme moi, en mode strict pour tout on le prend dans les dents.

font-family: Arial; c'est léger comme passe-partout, pour celles et ceux que çà intéressent, un vrai passe-partout, windows, linux, mac etc.

font-family: verdana,arial,helvetica,geneva,"DejaVu Sans Mono","Bitstream Vera Sans Mono",sans-serif;

img.but {width:16; height:16; cursor:pointer}

width et height sans valeurs de pixels!

img.but {width:16px; height:16px; cursor:pointer}

c'est mieux ;) et pour pinailler ;(

.calh td {color:#ffffff}

toute valeur color déclarées doit être suivi d'une valeur de background, dixit w3c.comme içi :

.calm {background-color: #5588bb; color:#FFFFFF; font-family

sinon, c'est du bon boulôt.

Commentaire de pgu83 le 27/04/2009 11:57:33

Bonjour,
Bravo pour ce script, il correspond exactement à ce que je cherchais.
Je rencontre le même problème que décrit par pierrealain6913 concernant les selects. J'ai vu la solution proposée par Anthed mais je ne comprends pas comment l'utiliser.
Je suis vraiment peu expérimenté en javascript, si quelqu'un peu me décrire plus précisement la méthode à suivre, merci d'avance.

Commentaire de MeMyself000 le 16/06/2009 21:22:57

Bonjour
est ce que tu peux m'aider moi je veux le calendrier dans mon site afficher tout le temps sans un input comme ca !!
Merci

Commentaire de Lenaic89 le 26/06/2009 11:00:25 9/10

Bonjour,
un autre bravo de ma part est du mise !!!

mais plus sérieusement je cherche à modifier ton code (ajout d'une fonction ou d'une partie du code)
de manière à pouvoir changer la couleur de certaines dates.

plus précisément j'aimerais pouvoir stocker dans un fichier, une base ou autre une liste de dates (des formations réparties sur l'année) et ensuite que ces dates soient utilisées pour colorer les cases correspondante dans le calendrier.
le système de stockage devra pouvoir être mise a jour sans modifier le code de préférence.

j'ai bien essayé de modifier ton code mais n'étant pas un petit génie du java script je me retrouve un peu bloqué.

merci de ton aide (si tu y pense car ce sujet commence a avoir de l'age !!!)

Commentaire de abe21 le 17/07/2009 16:49:36 10/10

Merci bcp!!!! c'est magnifique!!

Commentaire de Anthed le 17/07/2009 17:28:33

Salut à tous !

Tout d'abord merci pour vos différents commentaires bien sympas. Je manque un peu de temps en ce moment mais je n'oublie pas vos différentes remarques d'améliorations. Je les apporterai dès que possible.

A l'attention de LENAIC89 :
Je te conseille de garder le fonctionnement du calendrier plus ou moins tel qu'il est. Ensuite, pour colorer certaines dates en fonction d'événements qui pourraient se trouver dans une base (mieux qu'un fichier), rien de tel qu'un petit appel ajax à chaque changement d'année ou de mois pour récupérer tes infos et surcharger dynamiquement l'affichage de base du calendrier (changement de couleur, affichage du détail de l'événement au survol par la souris du jour concerné, ...).

Merci encore à tous et à bientôt.

Commentaire de balgds le 05/08/2009 04:10:21 5/10

super ce calendrier
quelques correctifs a integrer dans le code mais c'est vraiment tres bon.
un point de detail peut etre mais la fonction displayCalendar(id, ev) ne semble pas fonctionne avec un nom indicé de type nominput(ligne) dans la variable id ou alors j'ai merdu ailleur ?
Ca serait cool si tu integrais les modifs dans le script!
et pour le reste un grand merci ca marche du tonnerre

Commentaire de Akazed le 21/09/2009 14:49:11

très bon script. Merci Anthed.
Juste une petite critique : sur un champ date en bas d'un formulaire qui nécessite de faire défiler la page, le fait de cliquer sur le bouton et d'ouvrir le calendrier replace l'utilisateur en début de page. C'est un peu gênant parfois, mais sinon beau boulot !!

Commentaire de dmuller le 25/10/2009 19:51:10 10/10

Excellent programme ... le meilleur parmi ceux que j'ai testés (et pourtant régulièrement je le confronte à d'autres solutions ;-) ).
C'est pourquoi, encore aujourd'hui, je l'intègre régulièrement dans mes solutions informatiques.

B R A V O et grand merci.

Commentaire de bobabar le 10/11/2009 16:31:11 9/10

Joli boulot à première vue. Je met "à première vue" simplement parce que je n'ai pas encore regarder la source et que je ne suis peut-être un peu juste pour une critique sérieuse.

1/ l'intégration est rapide, en 5 minutes, ton calendrier était sur une de mes pages.

2/ avec cette page faite en 5 minutes mes stests ont donnés ceci :
- sous FF 3.5 : OK, mais sans rien modifier le placement du calendrier est assez éloigné du bouton (je suppose que cela se configure dans le code JS)
- sous Chrome 3 : OK, mais le look du calendrier est assez différent, plus étalé horizontalement. Même remarque que sous FF par rapport au placement du calendrier. Le calendrier réagit plus vite, mais ça c'est sans doute à Chrome et ses performances en JS.
- sous IE 6 : ne fonctionne pas (rien n'apparait, et le navigateur m'indique "Objet attendu" à la ligne 247

3/1ère critique : effectivement, comme l'a dit quelqu'un plus haut, la page semble se recharcher ou en tout cas se recaler sur le haut de la page quand on choisit une date, ce qui est très énervant. Je vais essayer de comprendre pourquoi, parce que dans mon cas, cela le rend quasi-inutilisable, trop inconfortable pour l'utilisateur.

Je met 9/10 en raison des petites remarques ci-dessus.
Merci beaucoup en tout cas !

Commentaire de baouk2000 le 24/03/2010 22:16:39

merci pour ce script, c'est bienfait et j pense que ça me serait vraiment utile :D

Commentaire de xxdasxx le 02/04/2010 17:21:05 10/10

Merci!
Cela fait un moment que je cherchais ce script!
il est parfait, et facile à integrer. Sur tout ceux que j'ai vu c'est le "best of the best"!
J'ai rencontré aucun bug jusqu'a présent.
Tu me facilites grave la vie!
Encore merci.

Commentaire de jeteconchi le 12/04/2010 13:55:21 10/10

Tres bien ce calendrier. un comme je cherchais ^^

Commentaire de pasifisateur le 03/05/2010 19:12:47

ça marche impec sur FireFox et Chrome ,mais ça foire sur IE il m'affiche le calendrier en haut de page ignorant totalement la div où il est sensé s'insérer :( ,si quelqu'un pourra me montrer comment y remédier, je le remercie d'avance !!

Commentaire de abdessamie2010 le 05/05/2010 12:04:23

Génial et bravo, c'est ce que je cherchais!
Mais lorsque je lance le pg avec easyphp  il ne fonctionne pas!!!
svp qui peut me donné une explication
merci d'avance  :-)

Commentaire de abdessamie2010 le 10/05/2010 13:10:03

Génial et bravo, c'est ce que je cherchais!
Mais lorsque je le lance avec easyphp  il ne fonctionne pas!!!
:^(

SVP    un cou de main C urgent
merci d'avance  !:^(

Commentaire de NatachaCourcelles le 25/05/2010 10:15:14

Bonjour et merci pour ce script

chez moi il fonctionne parfait sur tout les navigateurs ie5.5, ie6, ie7, FF, chrome et safari

pour contrer la remonté en haut de page et optimiser le fonctionnement voici ma solution : remplacer le # qui est une ancre <a href="#"> par <a href="javascript:;"> dans le lien qui encadre l'image du calendrier

bon dév
Natacha

Commentaire de djoshaiek le 07/07/2010 12:25:36

super bolo mereci bien :)
je suis débutant en javascript
c gentil si tu m explique comment intégrer cette calendrier dans mon page sans faire une grande modification merci :)

Commentaire de Anthed le 07/07/2010 12:34:44

Salut,

@Djoshaiek

Une page d'exemple est fournie avec le code. Il intègre le minimum pour bien comprendre comment ça fonctionne :
  - référence au fichier calendar.js
  - un input pour saisir une date
  - un bouton d'affichage du calendrier où la fonction d'appel prend le nom du champ date en paramètre.

Petit rappel pour les débutants :
  - préférer l'utilisation de FF à IE : le plugin Firebug est des plus utiles pour analyser le code html généré dynamiquement, les différents styles css appliqués et passer en debug dans le code js
  - ne pas hésiter à truffer le code js de alert() temporaires pour tester les différents paramètres pour ceux qui ne sont pas adeptes du debug js classique

@ Tous

Le temps me manque cruellement ces derniers temps (depuis 2 ans :) ) mais j'ai bien pris en compte vos différents retours. Je vous en remercie encore et tâcherai de parfaire le calendrier dès que possible.

Bonne continuation à tous !

Commentaire de ramold le 17/09/2010 19:39:32 9/10

Merci pour ce code qui fonctionne très bien.
Le seul truc que je n'arrive pas à faire, c'est modifier la couleur des caractères des noms de mois et des chiffres des jours.
Je ne comprends pas trop pourquoi, mais je ne pense pas que cela vienne du code.

Quand je change la couleur dans le fichier css pour ces deux éléments (j'imagine la propriété color de .cal), rien ne se passe.

Mais bon, c'est pas grave.

Excellent travail.

Commentaire de eltaris le 26/10/2010 10:54:22

Bonjour, d'abord merci pour ce code, je cherchais un calendrier et ça répond parfaitement à mon besoin.
Ensuite, je propose une petite amélioration:  
- D'abord corriger les deux petites coquilles énoncées dans les commentaires plus haut (remplacer < par > dans la fonction getCellClassNameSuffix et remplacer var testDate = new Date(y2, m2 - 1, 1); par var testDate = new Date(y2, m2 - 1, 29); dans la fonction displayCalendar)

- Ensuite, pour ce qui consiste à afficher la date du jour avec une couleur différente, c'était, vu l'utilisation que je fait du calendrier, inutile pour moi. Déjà parce que j'avais pas besoin de mettre en évidence la date du jour, et surtout parce que la date du jour, c'est la première date non grisée suivant les dates passées. Elle est donc naturellement mise en évidence.

Par contre, pour une question de lisibilité, j'avais besoin de mettre en évidence la date choisie par l'utilisateur (en effet la textbox liée au calendrier peut être pré-rempli).
Du coup, j'ai apporte une petite modification pour qu'au lieu de colorier la date du jour, je colorie la date que contient ma textbox. Pour cela c'est pas difficile, il suffit de rajouter ceci dans la fonction getCellClassNameSuffix :

function getCellClassNameSuffix(day) {
    var selectedDate = new Date(calendar.cyear, calendar.cmonth - 1, day);
    var chosenDate = new Date(calendar.year, calendar.month - 1, calendar.day);
    if (selectedDate.getYear() == chosenDate.getYear() && selectedDate.getMonth() == chosenDate.getMonth() && selectedDate.getDate() == chosenDate.getDate()) {
            return "tod";
    }
    if (PAST_ENABLED || TODAY_ENABLED) {
    // ... le reste du code ne change pas

Ainsi, j'utilise la couleur, qui à la base est celle de la date du jour, pour indiquer la date choisie.
Si quelqu'un veut mettre en avant la date du jour ET la date pré-choisie, il lui faudra définir un autre suffixe (mais comme moi je n'utilise pas la date du jour, ça me suffisait :D)

Commentaire de rivestm le 24/12/2010 15:18:58 10/10

Merci c<est ce que je cherchais et +.

Commentaire de dany75013 le 17/01/2011 17:20:05 10/10

Merci c'est ce que je cherchais aussi.

Commentaire de lahmamilahmami le 15/02/2011 22:54:15 6/10

Code simple est but précis,
Bravo c'est ce que je cherche exactement depuit des jours

Commentaire de Cju29 le 07/06/2011 10:34:02

Merci pour ce code c'est exactement ce que je cherchais.

Il y a juste un petit bug qui apparaissait lors de la sélection d'une année "px" est rajoutée derrière celle-ci.
Pour le corriger il suffit de l'enlever dans la fonction "selectYear" sur la ligne :
"calendar.cyear = parseInt(s[s.length - 1]) + calendar.cyear2 - 11+"px";"

Commentaire de CSharpJSharp le 10/11/2011 14:44:00

Joli et excellent.

Sous IE6 :
  - sur une page HTML, ça marche nickel ;
  - mais sur une page aspx (sous IE6), toujours des erreurs JavaScript et ça marche pas.

Quelqu'un a déjà eu ça ?

Merci

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Fermeture de popup et envoi d'informations [ par Rankin ] Salut &#224; tous. Je bosse actuellement sur la r&#233;alisation d'un site, qui contient une partie administration pour g&#233;rer des bases de donn& Click sur une date du calendrier [ par fionalabelle ] Bonjour &#224; tous, <P class Une question pour mon calendrier [ par syltouille ] Bonjour et bonne annee tout le monde.Mon premier souci de cette annee est:J'ai realise un calendrier en PHP avec des images pour chaque jour.- Je voud recherche calendrier [ par makinator7266 ] Bonjour à tous et toutes, je suis à la recherche d'un calendrier qui me permette d'afficher une fenêtre pop-up indiquant l'évenement correspondant à l Recupérer la date depui un calendrier [ par lebasketeur ] bonjour tout le monde,Au cours de mon premier projet en php/mysql, j'ai rencontré quelque problème, si vous pouvez bien m'aider...Dans un formulaire d Calendrier [ par vocal94130 ] Bonjour, Je voudrais savoir si vous connaissez un petit calendrier modifiable pour chaque date. Par exemple, si je clique sur 24 juillet, il y à un p Calendrier datepicker [ par midoxe ] bonjour tout le monde, Au cours de mon projet en php/mysql, j'ai rencontré quelque problème, si vous pouvez bien m'aider... Dans un formulaire d'ajou calendrier [ par chourouk86 ] Salut à tous,Je suis développeur mais malheureusement je connais pas travailler en CSS alors si possible de m'aider de trouver un bon style de calendr gestion calendrier [ par ikramta ] salut tout le monde.j'ai teléchargé un script qui permet d'afficher un calendrier et c'est vraiment ce que je veut ,mais une petite chause qui  me blo


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,465 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales