IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

jQuery Discussion :

Coloration cellule d'un tableau datepicker


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut Coloration cellule d'un tableau datepicker
    Bonjour,

    Je viens vers vous car j'ai un soucis avec jQuery, je souhaite dans mes deux datepicker mettre des cellules d'un autre couleur depuis des dates stocké dans ma base de données, j'ai donc fais ma requête SQL que j'ai ensuite j'ai fais ça,

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $dateEvent= mysql_query($reqDate);
    while ($qarray=mysql_fetch_array($dateEvent)){
            $tblDateEvent[]= array($qarray[0]);
    }

    Dans ma requête SQL j'ai formaté m'as date comme ceci,
    DATE_FORMAT( colonne_date, '%Y,%m,%d' ).

    Puis après j'ai mon code jQuery,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    $(document).ready(function() {
            var tableau = '<?php json_encode($tblDateEvent) ?>';
            $("#datepicker2").datepicker({
                minDate: new Date($('input[name=dateMin]').val()),
                maxDate: new Date($('input[name=dateMax]').val()),
                beforeShowDay: function(date){
                    var m = date.getMonth();
                    var d = date.getDate();
                    var y = date.getFullYear();
                    if($.inArray((m +1)+'-'+d+'-'+y, tableau) !== -1) {			
                        return [true, 'datepickerConsoDonDay'];
                    }
                    else{
                        return [true];
                    }
                }
            });
            $("#datepicker1").datepicker({
                minDate: new Date($('input[name=dateMin]').val()),
                maxDate: new Date($('input[name=dateMax]').val()),
                onSelect: function(){
                    if ($(this).val() !== '') {
                        $("#datepicker2").datepicker('option', 'minDate', $(this).val());
                    }
                },
                onClose: function () {
                    if ($(this).val() == '') {
                        $("#datepicker2").datepicker('option', 'minDate', null);
                    }
                }
            });
    });
    Mon soucis c'est que beforeShowDate ne fonctionne pas, je pense que le tableau n'est pas bien formaté mais je ne sais pas comment faire. Tout les tutos que j'ai vu avais des tableaux déclarés en JS, donc je pense que c'est le tableau qui bloque...
    Si vous pouviez m'aider à démêler tout ça, ça serais super.
    Merci

    Cordialement
    Dernière modification par Bovino ; 02/03/2015 à 09h45. Motif: Merci d'indiquer le langage utilisé ([code=xxx]) pour activer la coloration syntaxique !

  2. #2
    Membre très actif
    Homme Profil pro
    Déveleoppeur Web/Mobile
    Inscrit en
    Avril 2013
    Messages
    330
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Déveleoppeur Web/Mobile
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2013
    Messages : 330
    Par défaut
    Bonjour,

    comme tu dois le savoir json_encode te renvois la valeur d'une variable en JSON. Si la variable que tu souhaites encoder est un tableau indexé avec des indexpar défauts (0, 1, 2 etc..) alors ça te renvoi un tableau. Si ce sont des index autres (1, 2, 3 ... ou 'a', 'b', 'c') alors ça te renvoit un objet.Cf les exemple json_encode de cette page

    Ensuite pour vérifier ce que contient ton objet tableau en jquery, affiche le dans la console (console.log()) et tu seras fixé

  3. #3
    Invité
    Invité(e)
    Par défaut
    Tout à bord désolé de répondre si tard mais le weekend a été nécessaire pour me remettre sur ce travail avec l'esprit vidé.

    Merci de ta réponse Rpass.

    J'ai fais le console.log(), la console me dis qu'il ne renvois rien je ne comprend pas pourquoi.

    La tableau en PHP contient ceci,
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    2015,02,14|2015,02,18|2015,02,19|2015,02,20|2015,02,27 <!---(sans les pipe (|), et les virgules viennent du formatage dans la requête SQL)--->

    Ce que je comprend pas pourquoi le json_encode me crée un tableau vide, est-il mal formaté? Je ne comprends pas, merci de votre aide.

    Cordialement

  4. #4
    Membre chevronné
    Avatar de Darkaurora
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2010
    Messages
    382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2010
    Messages : 382
    Billets dans le blog
    1
    Par défaut
    Un petit truc qui me choque

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var tableau = '<?php json_encode($tblDateEvent) ?>';
    il manquerait pas un "echo" par hasard ?

  5. #5
    Invité
    Invité(e)
    Par défaut
    Quelle cruche je fais, merci darkaurora.
    Mais maintenant il me dis que le tableau est null... Le formatage des données est-il en cause?

  6. #6
    Membre chevronné
    Avatar de Darkaurora
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2010
    Messages
    382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2010
    Messages : 382
    Billets dans le blog
    1
    Par défaut
    Déjà une bonne pratique lorsque tu passes des variables au JS c'est de toujours tester leurs existences:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var tableau = '<?php echo json_encode(!empty($tblDateEvent) ? $tblDateEvent : array()); ?>';
    Bien maintenant il faut savoir que json_encode n'est pas infaillible si des données (clé ou valeur) ne sont pas encodés en UTF-8 par exemple il te retournera une erreur.

    Pour être sur que la fonction json_encode n'a pas produit d'erreur utilise json_last_error dont la documentation et des exemples d'utilisation sont fournis sur la documentation officiel PHP ici : http://php.net/manual/fr/function.json-last-error.php

    Maintenant il serait déjà judicieux d'afficher ce que contient ton tableau avant de le passer au JS, tu peux le faire de cette manière:

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $dateEvent= mysql_query($reqDate);
    while ($qarray=mysql_fetch_array($dateEvent)){
            $tblDateEvent[]= array($qarray[0]);
    }
    var_dump($tblDateEvent);

Discussions similaires

  1. Réponses: 2
    Dernier message: 06/08/2008, 16h11
  2. colorer cellule tableau
    Par Mike35 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 12
    Dernier message: 27/07/2006, 14h57
  3. [SWT]edition de cellule d'un tableau SWT
    Par javaGirl dans le forum SWT/JFace
    Réponses: 2
    Dernier message: 30/03/2004, 13h04
  4. Réponses: 3
    Dernier message: 01/12/2003, 13h14
  5. [CR9] Colorier les cellules d'un tableau croisé
    Par Koko22 dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 14/11/2003, 16h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo