ah ok. Content pour toi alors :D
Bon je résoud.
Version imprimable
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 ?
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:
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:
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:
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!
:D
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é! ;)