J'ai le code pour un calendrier javascript et il fonctionne parfaitement comme il le crée lors du chargement de la page. Cependant, je me demandais s'il était possible d'ajouter des événements. J'ai trouvé un plugin (jQuery) qui permet à l'utilisateur de survoler un td avec la classe "event" et un évènement sera affiché. Donc, puisque ce calendrier ne sera pas utilisé par moi mais par quelqu'un d'autre qui ne sait rien sur le développement, je me demandais s'il y avait un moyen de faire un fichier php ou de télécharger ou quelque chose pour télécharger l'événement. Je veux dire, disons qu'elle veut un événement sur le 3, puis elle télécharge un fichier php le lit et dit à javascript d'ajouter la classe "événement" à cette date et jQuery fait le reste. C'est possible? Je n'arrive même pas à comprendre comment le faire et j'espère vraiment que je me suis expliqué. Voici mon javascript btw.javascript et php à la volée calendrier
function buildCal(){
var d = new Date();
var month = d.getMonth()+1;
var year = d.getFullYear();
var monthName=['Enero','Febrero','Marzo','Abril','Mayo','Junio','Julio','Agosto','Septiembre','Octubre','Noviembre','Diciembre'];
var daysInMonth=[31,0,31,30,31,30,31,31,30,31,30,31];
var objectDay = new Date(year, month-1, 1); //fix date bug when current day is 31st
objectDay.od=objectDay.getDay()+1; //fix date bug when current day is 31st
var todaydate=new Date()
var scanfortoday=(year==todaydate.getFullYear() && month==todaydate.getMonth()+1)? todaydate.getDate() : 0 //DD added
daysInMonth[1]=(((objectDay.getFullYear()%100!=0)&&(objectDay.getFullYear()%4==0))||(objectDay.getFullYear()%400==0))?29:28;
var t='<div class="main"><table class="main" cols="7" cellpadding="0" border="0" cellspacing="0">';
t+='<h3 class="monthCSS" align="center">'+monthName[month-1]+' - '+year+'</h3><tr align="center">';
for(s=0;s<7;s++)t+='<td class="daysofweek">'+"DoLuMaMiJuViSa".substr(s*2,2)+'</td>';
t+='</tr><tr align="center">';
for(i=2;i<=42;i++){
var x=((i-objectDay.od>=0)&&(i-objectDay.od<daysInMonth[month-1]))? i-objectDay.od+1 : ' ';
if (x==scanfortoday)
x='<td class="today">'+x+'</td>'
t+='<td class="days">'+x+'</td>';
if(((i)%7==0)&&(i<36))t+='</tr><tr align="center">';
}
return t+='</tr></table></div>';
}
Quelque chose d'autre, comme vous pouvez le voir ici, il ajoute blankspaces jusqu'à ce qu'il arrive à une date réelle. J'essayais de le faire vérifier si (x n'était pas un nombre) puis ajouter un td class = "padding" mais pour ce faire j'essayais d'utiliser x.match (/ [0-9] + /) mais ça ne l'a pas fait T semble fonctionner et ce serait aussi la première fois que j'essaie d'utiliser regex avec javascript quelqu'un serait-il savoir pourquoi est-ce faux? ou comment vérifier réellement pour cela?
Modifier
quelque chose d'étrange se passe avec ce script et je ne sais pas pourquoi, j'ai essayé de changer de
t+='<td class="days">'+x+'</td>';
à
t+='<td class="days' + x +'">'+x+'</td>';
cette , donc je pourrais sélectionner chaque td, mais quand je fais cela, un nouveau td est généré qui CONTIENT
<td id="days<td class=" today="">1</td>
Je ne sais pas pourquoi cela se produit, je sais qu'il est tout simplement de jouer avec le code, car après, je reçois un « > imprimé (à cause des citations désadaptation provoquée par ce nouveau td ... pourquoi est cela arrive?
question, vous proposez d'ajouter le php comme vous me montrez ici ou que je le fais complètement en php? – Tsundoku
En regardant votre javascript, vous feriez mieux de tout faire en php. La fonction JQuery pour afficher les jours est tout ce que vous devez avoir en javascript. –