Calendario completo Añadir evento no a través de promoción

Me pregunto cómo puedo permitir que los usuarios completen un formulario en lugar del cuadro de promoción que parece aparecer, cuando un usuario hace clic en una parte negra del calendario completo.

esto es básicamente lo que he hecho hasta ahora. Como puede ver, lo tengo enviando los datos a una página de PHP que está funcionando, pero simplemente no estoy contento con el cuadro de solicitud y me gustaría que sea una buena forma en la que también puedan agregar notas.

select: function(start, end, allDay) { var title = prompt('Event Title:'); if (title) { calendar.fullCalendar('renderEvent', { title: title, start: start, end: end, allDay: allDay, }, true // make the event "stick" ); year = new Date(start).getFullYear(); month = new Date(start).getMonth()+1; month = ((month < 10) ? '0' : '') + month; day = ((new Date(start).getDate() < 10) ? '0' : '') + new Date(start).getDate(); hours = ((new Date(start).getHours() < 10) ? '0' : '') + new Date(start).getHours(); min = ((new Date(start).getMinutes() < 10) ? '0' : '') + new Date(start).getMinutes(); sec = ((new Date(start).getSeconds() < 10) ? '0' : '') + new Date(start).getSeconds(); start = year + '-' + month + '-' + day +' '+hours+':'+min+':'+sec; year = new Date(end).getFullYear(); month = new Date(end).getMonth()+1; month = ((month < 10) ? '0' : '') + month; day = ((new Date(end).getDate() < 10) ? '0' : '') + new Date(end).getDate(); hours = ((new Date(end).getHours() < 10) ? '0' : '') + new Date(end).getHours(); min = ((new Date(end).getMinutes() < 10) ? '0' : '') + new Date(end).getMinutes(); sec = ((new Date(end).getSeconds() < 10) ? '0' : '') + new Date(end).getSeconds(); end = year + '-' + month + '-' + day +' '+hours+':'+min+':'+sec; //alert(start+' - '+end); $.get("system/classes/core.php?task=calendar&q=addnew&userid="+userid+"&title="+title+"&start="+start+"&end="+end+"&allDay="+allDay, function(data) { alert(title + ' was created for '+ start +' '+ end); }); } calendar.fullCalendar('unselect'); }, 

Primero debe crear un formulario con un título y todo lo que desee enviar. Luego envuélvelo en un div oculto. Al igual que … (ejemplo simple)

  

Cada vez que se hace una selección, se mostrará () ese div oculto. Rellene el formulario y luego de enviar .haga clic en () de ese formulario enviará la información y ocultará el div de nuevo.

 select: function(start, end, allDay){ $(".popup").show(); var start = Date.parse(start) / 1000; var end = Date.parse(end) / 1000; var allDay = allDay; var wipit = // create a session id such as a random number that can be cleared later to prevent double submissio $(".submitForm").click(function(){ var title = $(".title").val(); if(title){ $.post("/*page name*/", {title: title, start:start, end:end, allDay:allDay}, function(){ $(".title").val("") title = ""; wipit = ""; start = ''; end = ''; allDay = ''; calendar.fullCalendar('unselect'); calendar.fullCalendar('refetchEvents'); }); } else { // clear all information, unselect events, and alert that a title needs to be entered } $(".popup").hide(); }); $(".exit").click(function(){ // clear all info, unselect events and... $(".popup").hide(); }); } 

Nuevamente, esto es muy simple y general y tendría que ser modificado a sus especificaciones, así como a su gusto, pero debería funcionar. Déjeme saber si esto ayuda