Ah oui j'ai téléchargé les sources tout en suivant le tuto en fait et j'ai modifié un peu!
D'ailleurs, je n'arrive pas à colorier la cellule contenant le lien dans le calendrier (jour ayant un événement) ! Je ne vois pas à quel moment mettre ca... Tu vois comment faire?
Merci pour le résolu! :-p
Bouh j'y arrive pas, pourtant l'auteur du tuto met à la fin que ca devrait être simple de colorier les cellules contenant des événements mais je n'y arrive pas![]()
tu as le lien du tuto ?
Ma page Developpez - Mon Blog Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag![]()
Venez sur le Chat de Développez !
voilà comment tu pourrais faire (ça marche même si c'est surement pas le top).
Dans le fichier calendrier_ajax.php tu remplis un tableau tab_jours. Dedans tu mets soit un chiffre, soit un lien. Le lien, c'est si tu as des commentaires.
Tu peux donc créer un tableau en parrallèle avec une variable qui dis si c'est un lien ou pas.
exemple (ce sera plus simple):
Je remplis mon tableau tab_jours et le nouveau : tab_liens
si lien alors tab_liens vaut 'ok', sinon il vaut 'no'
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
33
34
35
36
37
38
39 while($compteur<43){ if($compteur<$num_jour){ $tab_jours[$compteur]=''; $tab_lien[$compteur]=''; }else { //si la date existe, on affiche alors le jour dans la cellule du tableau if(checkdate($mois,$num_jour_courant,$annee)){ //On vérifie si un évènement a lieu ce jour ci $date=$annee."/".$mois."/".$num_jour_courant; $contenu=''; $requete="select * from evenements where evenement_date='".$date."'"; $ress=mysql_query($requete); if($ress){ $nbre=mysql_num_rows($ress); if($nbre>0){ //lien vers le script qui va déclencher l'affichage des évènement pour le jour donné $lien='<a href=\'#\' onclick=\'showEvent(\\"'.$date.'\\");\'>'.$num_jour_courant.'</a>'; $tab_jours[$compteur]=$lien; $tab_lien[$compteur]='ok'; }else { $tab_jours[$compteur]=$num_jour_courant; $tab_lien[$compteur]='no'; } mysql_free_result($ress); } $num_jour_courant++; }else { $tab_jours[$compteur]=''; $tab_lien[$compteur]=''; } } $compteur++; }
ensuite tu insères dans json tes tableaux tab_jours et tab_liens :
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
33 if(!empty($tab_jours)){ $retour_json.=' "calendrier" : [ '; $compteur=1; while($compteur<43){ if($compteur==42){ $retour_json.=' { "fill" : "'.$tab_jours[$compteur].'" } '; }else { $retour_json.=' { "fill" : "'.$tab_jours[$compteur].'" } , '; } $compteur++; } $retour_json.=' ] , '; } if(!empty($tab_lien)){ $retour_json.=' "lien" : [ '; $compteur=1; while($compteur<43){ if($compteur==42){ $retour_json.=' { "fill" : "'.$tab_lien[$compteur].'" } '; }else { $retour_json.=' { "fill" : "'.$tab_lien[$compteur].'" } , '; } $compteur++; } $retour_json.=' ] '; } $retour_json.=' } '; echo $retour_json;
Du coup tu peux dans le fichier function inspecter ton tableau et si t'as ok alors tu changes la couleur de la cellule
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 function remplirCalendrier(reponsejson) { //on utilise la fonction evalJSON de prototype pour parser la réponse JSON var data=reponsejson.responseText.evalJSON(); //On place les liens suivants,précédents et le mois en cours $('link_suivant').onclick=function(){eval(data.lien_suivant) ;}; $('link_precedent').onclick=function(){eval(data.lien_precedent);}; $('titre').innerHTML=data.mois_en_cours; //Maintenant, on affiche tous les jours du calendrier var compteur=1; var id=''; while(compteur<43){ id=compteur.toString(); $(id).innerHTML=data.calendrier[(compteur-1)].fill; //ici on inspecte le tableau lien if (data.lien[(compteur-1)].fill=='ok'){ $(id).style.background='#eeeeee'; } compteur++; } }
plus simple sinon !!!
Tu regardes la valeur de data.calendrier[(compteur-1)].fill dans la fonction remplirCalendrier
Si ça commence par "<a href" alors c'est qu'il y a un lien donc tu grises la case.
voili voilou
Bonjour et merci pour ta réponse!
J'ai testé le fait de tester la valeur de data.calendrier[(compteur-1)]... et en fait si j'ai un événement le 3avril, ma case est bien coloré comme je le voulais, seulement si je change de mois et que je passe en mai, mon 3 mai est coloré aussi :-/
Je vais continuer à chercher de mon coté mais si vous avez des conseils n'hésitez pas, ca doit etre un truc nul en plus...
Merci beaucoup en tout cas!
![]()
Au temps pour moi, j'avais oublié de mettre le else si ca ne commencait pas par href, maintenant ca fonctionne correctement, merci à tous ceux qui m'ont aidé!![]()
Partager