Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript > Bibliothèques & Frameworks > jQuery
jQuery Forum d'entraide sur le framework jQuery. Avant de poster : Tutoriels jQuery, FAQ jQuery, Tous les tutoriels JavaScript, Toutes les FAQ JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 11/12/2011, 12h04   #1
Membre à l'essai
 
Inscription : novembre 2007
Messages : 88
Détails du profil
Informations personnelles :
Localisation : Belgique

Informations forums :
Inscription : novembre 2007
Messages : 88
Points : 23
Points : 23
Par défaut datepicker et methode beforeshow

Bonjour à tous, je viens vers vous car j'épprouve un soucis avec jquery ui datepicker.

Le calendrier s'affiche bien, mais je n'arrive pas à utiliser le beforeShow, firebug me retourne le message : function statement requires a name

Voici mon code
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 
 
// Fonction qui me retourne le chiffre du mois affiché au lieu du nom
function returnMonthPicker(){
    monthNames = new Array('Janvier','Février','Mars','Avril','Mai','Juin','Juillet','Août','Septembre','Octobre','Novembre','Décembre');
    for(i=0;i<=11;i++){ if($(".ui-datepicker-month").html() == monthNames[i]){ return (i+1); } }
}
 
// Envoi une requête ajax pour vérifier l'état du jour (1 = enable || 0 = disbale)
function checkEtat(){
    $("#minLongPlan").find("td a").each(function(i){
        tmpy = $(".ui-datepicker-year").html(); // Année affiché
        tmpm = returnMonthPicker(); // Mois affiché
        tmpd = $(this).html(); // Jour
        tmpe = etatDay(tmpd,tmpm,tmpy); // Etat
        if(tmpe < 1){ $(this).parent().addClass("ui-state-disabled"); }
    });
}
 
$("#minLongPlan").datepicker({ beforeShow: checkEtat });
// $("#minLongPlan").datepicker({ beforeShow: checkEtat() });
et lorsque je test dans firefox j'obtient l'erreur :
function statement requires a name

Mon datepicker est directement afficher et n'est pas lier à un input, ma version jquery est : jquery-ui-1.8.14

D'avance merci de votre aide
splifferwolf est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/12/2011, 14h15   #2
Membre à l'essai
 
Inscription : novembre 2007
Messages : 88
Détails du profil
Informations personnelles :
Localisation : Belgique

Informations forums :
Inscription : novembre 2007
Messages : 88
Points : 23
Points : 23
Re bonjour, alors j'ai vue la chose sous un autre angle

Mon fichier php me retourne une chaîne JSON
[ [jour,mois,année], [jour,mois,année], etc...]
Toute ces date doivent-être désactiver

Voici le nouveau code, defait plus court et plus contextuel je trouve

Jquery
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 
var date = new Date();
y = date.getFullYear(); // Année 4 chiffre
m = (date.getMonth()+1); // Mois (comme janvier vaut 0, j'ajoute 1)
$.ajax({ url   : "monfichier.php", // Le fichier PHP
            data : "idCom="+rdv['idCom']+"&y="+y+"&m="+m, // Les paramètres
            dataType : "json", // Le format de retour
            success : function(tab){ // La fonction de succes
                $("#minLongPlan").datepicker({
                       beforeShowDay: function(date){
                            for(i=0; i<tab.length; i++){
                                if( m == tab[i][1] && y == tab[i][2] && (i+1) == tab[i][0] ){
                                    return [false, "ui-state-disabled","Pas OK"]; // On désactive
                                }
                                alert('OK');  // Aucun alert reçus comme si tout était désactiver
                                return [true,'ui-state-default','OK']; // Activer
                            }
                        }
                 });
             }
});
exemple pour décembre j'obtient le tableau json :
[[1,12,2011],[2,12,2011],[3,12,2011],[4,12,2011],[6,12,2011],[8,12,2011],[10,12,2011],[11,12,2011],[13,12,2011],[15,12,2011],[17,12,2011],[18,12,2011],[20,12,2011],[22,12,2011],[24,12,2011],[27,12,2011],[29,12,2011],[31,12,2011]]

Tout ces jours doivent être désactiver (on constate qu'en réalité il nous reste 5,7,9,12,14,16,19,21,23,25,26,30 qui doivent être activer)

La condition pour changer la class semble correct
Si le mois correspond, si l'année correspond et enfin si le jour correspond

Malheureusement il me désactive tout, les jours sensé être activer ne le sont pas

Donc voilà je sais pas si je m'exprime bien et si j'explique correctement le problème, donc n'hésiter pas à demander des précision si besoin

d'avance merci de votre aide
splifferwolf est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/12/2011, 17h09   #3
Membre à l'essai
 
Inscription : novembre 2007
Messages : 88
Détails du profil
Informations personnelles :
Localisation : Belgique

Informations forums :
Inscription : novembre 2007
Messages : 88
Points : 23
Points : 23
Re bonjour à tous,

je pense m'approcher du but, pour l'instant ca fonctionne à l'affichage, mon problème maintenant est que si je change de mois il ne prend pas en compte ceux des mois suivant et précédent

En clair nous sommes le 11/12/2011 donc il m'affiche le calendrier de décembre 2011, il désactive bien les jours comme rechercher, mais si je fait suivant il ne va pas chercher les jours qu'ils faut désactiver pour ce moi là

En clair ca fonctionne que pour le premier mois

Voici le nouveau code
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 
// Retourne true si la date est présent dans le tableau
function isDateInArray(arr,d,m,y){
    check = false;
    for(i=0;i<arr.length;i++){ if(d == arr[i][0] && (m+1) == arr[i][1] && y == arr[i][2]){ check = true; } }
    return check;
}
 
$.ajax({ url: "monfichier.php",
           data: "idCom="+rdv['idCom']+"&y="+y+"&m="+m,
           dataType: "json",
           success: function(tab){
               $("#minLongPlan").datepicker({
                   beforeShowDay: function(date){
                       if(isDateInArray(tab,date.getDate(),date.getMonth(),date.getFullYear())){ return [false, "ui-state-disabled", "Fermer"]; }
                       return [true,"","OK"];
                   }
               });
          }
});
Donc lors de l'affichage ca fonctionne les jours sensé être désactiver le sont, jusqu'a ce que je face suivant ou précédent

Donc est-il possible de modifier celà ?

d'avance merci de votre aide
splifferwolf est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/12/2011, 18h55   #4
Membre à l'essai
 
Inscription : novembre 2007
Messages : 88
Détails du profil
Informations personnelles :
Localisation : Belgique

Informations forums :
Inscription : novembre 2007
Messages : 88
Points : 23
Points : 23
Bonsoir,

Résolu, je vais chercher tout les planings pour un élément via le php, sans le limiter à une année et un mois (bon c'est sûr mon json contient pas mal de date, mais c'est fonctionnel)

ca aurait été préférable d'aller chercher les date mois par mois mais bon...

Merci quand même.
splifferwolf est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/12/2011, 19h49   #5
Modérateur
 
Avatar de NoSmoking
 
Homme
Inscription : janvier 2011
Messages : 2 944
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Isère (Rhône Alpes)

Informations forums :
Inscription : janvier 2011
Messages : 2 944
Points : 4 776
Points : 4 776
Citation:
ca aurait été préférable d'aller chercher les date mois par mois mais bon...
sur le principe donc pourquoi ne pas faire la recherche des jours sur le changement du mois au clic sur les boutons précédant/suivant.
NoSmoking est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/12/2011, 22h48   #6
Rédacteur
 
Avatar de danielhagnoul
 
Homme Daniel Hagnoul
Étudiant perpétuel
Inscription : février 2009
Messages : 3 221
Détails du profil
Informations personnelles :
Nom : Homme Daniel Hagnoul
Âge : 61
Localisation : Belgique

Informations professionnelles :
Activité : Étudiant perpétuel
Secteur : Enseignement

Informations forums :
Inscription : février 2009
Messages : 3 221
Points : 6 767
Points : 6 767
Bonsoir

C'est un peu tard, mais voici comment j'avais abordé le problème de la personnalisation des dates en 2009 : http://danielhagnoul.developpez.com/...datepicker.php, http://danielhagnoul.developpez.com/...er/exemple.php et http://danielhagnoul.developpez.com/...cker/bonus.php
__________________

FAQ jQuery

Mon cahier d’exercices sur jQuery & Co

Si un message vous a aidé ou vous semble pertinent, votez pour lui !
danielhagnoul est déconnecté   Envoyer un message privé Réponse avec citation 10
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h19.


 
 
 
 
Partenaires

Hébergement Web