Pregunta

Tengo el código para un calendario javascript y funciona perfectamente, ya que crea cuando se carga la página. Sin embargo, me preguntaba si es posible añadir eventos a la misma. He encontrado un plugin (jQuery) que permite al usuario que se ciernen sobre un td con la clase "evento" y se mostrará un evento. Así que ya que este calendario no será utilizada por mí, sino por otra persona que no sabe nada sobre el desarrollo de Me preguntaba si hay una manera de hacer un archivo PHP o cargar o algo para que pueda subir el evento. Es decir, digamos que quiere un evento en la tercera luego se carga un archivo php lo lee y dice javascript para añadir el "evento" clase de esa fecha y jQuery hace el resto. ¿Es posible? Ni siquiera puedo encontrar la manera de hacerlo y realmente espero haberme explicado. Aquí está mi Javascript por cierto.

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

Otra cosa, como se puede ver aquí, que añade blankspaces hasta que llega a una fecha real. Yo estaba tratando de hacer que comprobar si (x no era un número) y luego añadir un td class = "padding" Sin embargo, para hacer esto yo estaba tratando de utilizar x.match (/ [0-9] + /) pero didn' t parecen funcionar y también sería la primera vez que intento utilizar expresiones regulares con javascript sería alguien sabe por qué es eso malo? o cómo comprobar realmente por ella?


Editar

Algo extraño está sucediendo con este guión y yo no sé por qué, traté de cambiar de

t+='<td class="days">'+x+'</td>';

a

t+='<td class="days' + x +'">'+x+'</td>';

esto, por lo que podría seleccionar cada td, pero cuando hago esto un nuevo TD es generada que contiene

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

No tengo idea de por qué sucede esto, sólo sé que es jugar con el código porque después me sale un "> impresa (a causa de las cotizaciones desajuste causado por esta nueva td ... ¿por qué sucede esto?

¿Fue útil?

Solución

Los sistemas de calendario que he creado el uso de una matriz PHP llena del mes. por lo que se puede iterar sobre ella y para cada celda de la tabla correspondiente días en blanco no es una matriz en blanco para el día.

por ejemplo.

$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()
              ...........
  )

construyo la matriz días por sólo la creación de una matriz a partir de la fecha especificada y la semana actual

A continuación, me golpeó el databse para obtener los eventos en ese rango

entonces ciclo a través de los eventos y los attatch a la matriz de calendario.

funciona como encanto.

Para conseguir que funcione con javascript que acaban de repetir algunas Javascript específico en la cabeza del archivo html que controlan la apertura y cierre de los días del calendario.

dará cliente de una página de inicio de sesión simple de entrada / editar eventos en un formulario web.

Otros consejos

Parece que usted está queriendo empujar datos de eventos desde el servidor a su página web que contiene el calendario. Aunque esto es posible, es difícil y generalmente no vale la pena el esfuerzo. Usted sería mejor de la construcción de algunos de AJAX en su calendario y el sondeo del servidor de eventos se actualiza cada 5 o 10 minutos más o menos. Esto introducirá un cierto retraso entre el momento en nuevos eventos se cargan y cuando muestran en el calendario, pero será mucho más fácil de desarrollar.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top