Question

J'ai le code pour un calendrier javascript et il fonctionne parfaitement comme il crée quand la page se charge. Cependant, je me demandais s'il est possible d'ajouter des événements à elle. J'ai trouvé un plugin (jQuery) qui permet à l'utilisateur de passer la souris sur un td avec « événement » de classe 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 a un moyen de faire un fichier php ou télécharger ou quelque chose afin qu'elle puisse télécharger l'événement. Je veux dire, disons qu'elle veut un événement au 3ème puis elle télécharge un fichier php lit et dit javascript pour ajouter le « événement » de classe cette date et jQuery fait le reste. C'est possible? Je ne peux pas comprendre même comment le faire et je l'espère vraiment que je me suis expliqué. Voici mon javascript btw.

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 : '&nbsp;';
            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. Je tentais de faire vérifier si (x était pas un nombre) puis ajoutez une td class = « padding » mais pour ce faire, je tentais d'utiliser x.match (/ [0-9] + /) mais il n » t semblent fonctionner et il serait également la première fois que j'essaie d'utiliser regex avec javascript serait ce que quelqu'un sait pourquoi est-ce mal? ou comment vérifier effectivement pour elle?


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>';

, pour que je puisse sélectionner chaque td, mais quand je fais une nouvelle td est généré qui contient

<td id="days&lt;td class=" today="">1</td>

Je ne sais pas pourquoi cela se produit, je sais qu'il est tout simplement déconner avec le code, car après, je reçois un « > imprimé (à cause des citations désadaptation provoquée par ce nouveau td ... pourquoi est-ce qui se passe?

Était-ce utile?

La solution

Les systèmes de calendrier, je l'ai utilisé créé un tableau PHP complet du mois. de sorte que vous pouvez parcourir et pour chaque correspondant cellule de tableau blanc jour il y a un tableau blanc pour la journée.

par exemple.

$calendar_dates = array(
              [week_1] = array(
                     [sun] = Null
                     [mon] = NULL
                     [tue] = array(
                            [events] = array(
                                    event_id => 'event name'
                                    event_name => ''
                                    event_time => ''
                             )
                     [wed]
                     ...
                 )
              [week_1] => array()
              ...........
  )

Je construis le tableau en jours seulement créer un tableau à partir de la date et la semaine en cours

alors je frappe le databse pour obtenir des événements dans cette gamme

Cycle puis à travers les événements et les attatch au tableau de calendrier.

fonctionne comme un charme.

Pour que cela fonctionne avec le javascript ont juste écho javascript spécifique dans la tête du fichier html qui contrôlent l'ouverture et la fermeture des jours civils.

vous donner client une page de connexion simple à des événements d'entrée / modifier dans un formulaire en ligne.

Autres conseils

On dirait que vous êtes désireux de pousser des données d'événement depuis le serveur vers votre page Web contenant le calendrier. Bien que cela soit possible, il est difficile et généralement ne vaut pas l'effort. Vous seriez mieux construire certains AJAX dans votre calendrier et d'interrogation du serveur pour l'événement met à jour toutes les 5 ou 10 minutes. Cela introduira un certain retard entre le moment où de nouveaux événements sont téléchargés et quand ils affichent sur le calendrier, mais sera beaucoup plus facile à développer.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top