Partage
  • Partager sur Facebook
  • Partager sur Twitter

Calendrier

colorer le jour sélectionné

    10 juillet 2011 à 8:07:33

    Bonjour à tous ;

    je travaille sur un calendrier ça fait 2 jours et j'ai modifié plusieurs lignes dans le code mais ça marche toujours pas avec moi.

    je veux que le jour du système s'affiche en couleur, et quand je sélectionne un jour il faut qu'il s'affiche aussi avec un autre couleur.

    pouvez vous m'aider à résoudre mon problème.

    voici mon script pour bien savoir de quoi je parle :



    <script type="text/javascript">
    
    
    
    // régler la date initiale
    var ds_i_date = new Date();
    ds_c_month = ds_i_date.getMonth() + 1;
    ds_c_year = ds_i_date.getFullYear();
    var today_day = ds_i_date.getDay();
    // récupérer élément par Id
    function ds_getel(id) {
    return document.getElementById(id);
    }
    
    // récupérer le gauche et le haut de l'élément.
    function ds_getleft(el) {
    var tmp = el.offsetLeft;
    el = el.offsetParent
    while(el) {
    tmp += el.offsetLeft;
    el = el.offsetParent;
    }
    return tmp;
    }
    function ds_gettop(el) {
    var tmp = el.offsetTop;
    el = el.offsetParent
    while(el) {
    tmp += el.offsetTop;
    el = el.offsetParent;
    }
    return tmp;
    }
    
    // élément de sortie
    var ds_oe = ds_getel('ds_calclass');
    // Container
    var ds_ce = ds_getel('ds_conclass');
    
    // sortie Buffering
    var ds_ob = '';
    function ds_ob_clean() {
    ds_ob = '';
    }
    function ds_ob_flush() {
    ds_oe.innerHTML = ds_ob;
    ds_ob_clean();
    }
    function ds_echo(t) {
    ds_ob += t;
    }
    
    var ds_element;
    
    var ds_nom_mois = [
    'Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin',
    'Juillet', 'Aout', 'Septembre', 'Octobre', 'Novembre', 'Décembre'
    ];
    
    var ds_nom_jour = [
    'Dim','Lun', 'Mar', 'Me', 'Jeu', 'Ven', 'Sam','Lun'
    ];
    
    // Calendarier body
    function ds_template_main_above(t) {
    
    return '<table cellpadding="0" cellspacing="1" class="ds_tbl">'
    + '<tr>'
    + '<td class="ds_entete" style="cursor: pointer" onclick="ds_cacher();" colspan="7"> [Fermer]</td>'
    + '</tr>'
    + '<tr>'
    + '<td class="ds_entete" style="cursor: pointer" onclick="ds_pa();">&lt;&lt;</td>'
    + '<td colspan="5"></td>'
    + '<td class="ds_entete" style="cursor: pointer" onclick="ds_na();">&gt;&gt;</td>'
    + '<tr>'
    + '<tr>'
    + '<td class="ds_entete" style="cursor: pointer" onclick="ds_pm();">&lt;</td>'
    + '<td colspan="5" class="ds_entete">' + t + '</td>'
    + '<td class="ds_entete" style="cursor: pointer" onclick="ds_nm();">&gt;</td>'
    + '</tr>';
    
    
    
    
    
    
    }
    
    function ds_template_day_row(t) {
    return '<td class="ds_subentete">' + t + '</td>';
    
    }
    
    function ds_template_new_week() {
    return '</tr><tr>';
    }
    
    function ds_template_blank_cell(colspan) {
    return '<td colspan="' + colspan + '"></td>'
    }
    
    function ds_template_day(d, m, y) {
    return '<td class="ds_cell" onclick="ds_onclick(' + d + ',' + m + ',' + y + ')">' + d + '</td>';
    
    }
    
    function ds_template_main_below() {
    return '</tr>'
    + '</table>';
    }
    
    
    // tracer la calendrier
    function ds_draw_calendar(m, y) {
    // nettoyer la sortie.
    ds_ob_clean();
    // l'entête
    ds_echo (ds_template_main_above(ds_nom_mois[m - 1] + ' ' + y));
    
    for (i=0;i<7;i++){ds_echo (ds_template_day_row(ds_nom_jour[(i+1)%7]));}
    
    
    // date objet.
    var ds_dc_date = new Date();
    ds_dc_date.setMonth(m - 1);
    ds_dc_date.setFullYear(y);
    ds_dc_date.setDate(1);
    
    days=new Date(y,m,0).getDate(0);
    var first_day = (ds_dc_date.getDay()+6)%7;
    
    
    
    var first_loop = 1;
    // premiere semaine
    ds_echo (ds_template_new_week());
    // Si le dimanche n'est pas le premier jour du mois, faire une vierge cellule...
    if (first_day != 0) {
    ds_echo (ds_template_blank_cell(first_day));
    }
    var j = first_day;
    for (i = 0; i < days; i ++) {
    
    if (j == 0 && !first_loop) {
    // nouvelle semaine!!
    ds_echo (ds_template_new_week());
    }
    // creer une ligne pour ce jour
    ds_echo (ds_template_day(i + 1, m, y));
    
    first_loop =0;
    // le jour aprés
    j ++;
    j %= 7;
    }
    // footer
    ds_echo (ds_template_main_below());
    // faire afficher
    ds_ob_flush();
    // dans un view.
    ds_ce.scrollIntoView();
    
    
    
    }
    
    // function pour afficher la calendrier
    
    function ds_afficher(t) {
    
    ds_element = t;
    
    // Faire une nouvelle date, et régler le mois en cours et l'année.
    var ds_afficher_date = new Date();
    ds_c_month = ds_afficher_date.getMonth() + 1;
    ds_c_year = ds_afficher_date.getFullYear();
    // tracer la calendarier
    ds_draw_calendar(ds_c_month, ds_c_year);
    // afficher .
    ds_ce.style.display = '';
    // déplacer la calendrier
    the_left = ds_getleft(t);
    the_top = ds_gettop(t) + t.offsetHeight;
    ds_ce.style.left = the_left + 'px';
    ds_ce.style.top = the_top + 'px';
    // Faire défiler dans la vue.
    ds_ce.scrollIntoView();
    
    
    }
    </script> 
    
    Merci de m'aider
    
    • Partager sur Facebook
    • Partager sur Twitter
      10 juillet 2011 à 11:18:18

      tu as pensé au datepicker de JQuery ui ? il fait ce que tu demande il me semble
      • Partager sur Facebook
      • Partager sur Twitter
        10 juillet 2011 à 13:39:00

        oui j'ai pensé à jquery mais je le veux en js par ce que je vais avoir plus de modification de la part de mon chef mais moi je maitrise pas le jquery :)

        • Partager sur Facebook
        • Partager sur Twitter
          11 juillet 2011 à 14:20:41

          Citation : Hb-web

          oui j'ai pensé à jquery mais je le veux en js par ce que je vais avoir plus de modification de la part de mon chef mais moi je maitrise pas le jquery :)



          jquery c'est du js...
          • Partager sur Facebook
          • Partager sur Twitter
            11 juillet 2011 à 18:29:59

            salut;

            oui j'ai trouvé d'autres calendriers qui s'occupent de ça mais je veux vraiment modifier ce calendrier par ce que j'ai l'intégrer déjà sur notre application.

            Merci de votre compréhension
            • Partager sur Facebook
            • Partager sur Twitter

            Calendrier

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown