我正在使用fullcalendar进行项目。 我无法在mysql数据库中插入新事件。
可以在AJAX中使用,但我无法将变量从JS传递给php代码。
这是我的代码:
$(document).ready(function() {
var date = new Date();
var d = date.getDate();
var m = date.getMonth();
var y = date.getFullYear();
var calendar = $('#calendar').fullCalendar({
header: {
left: 'prev,next today',
center: 'title',
right: 'month,agendaWeek,agendaDay'
} ,
defaultView: 'month',
weekends: true,
selectable: true,
selectHelper: false,
allDayText: 'ore di lavoro',
editable: true,
theme: true,
select: function(start, end, allDay,jsEvent,view) {
if (view.name === "month") {
$('#calendar').fullCalendar('gotoDate', start);
$('#calendar').fullCalendar('changeView', 'agendaDay');
} else {
var title = prompt('Riparazione racchetta da tennis:');
if (title) {
calendar.fullCalendar('renderEvent',
{
title: title,
start: start,
end: end,
allDay: allDay
},
true // make the event "stick"
);
$.ajax({
type: "POST",
url: "kot.php",
data: "title=" + title + "&start=" + start + "&end=" + end,
});
$('#calendar').fullCalendar('refetchEvents');
}
calendar.fullCalendar('unselect');
}
},
eventSources: [
// your event source
{
url: 'json-events.php',
type: 'POST',
error: function() {
alert('there was an error while fetching events!');
},
//color: 'blue', // a non-ajax option
//textColor: 'black' // a non-ajax option
},
// any other sources...
{
url: 'kot.php',
type: 'POST',
data: {
custom_param1: 'something',
custom_param2: 'somethingelse',
custom_param3: 'somethingelsee'
},
error: function() {
alert('there was an error while fetching events!');
},
color: 'yellow', // a non-ajax option
textColor: 'black' // a non-ajax option
}
]
});
});
答案 0 :(得分:0)
在fullCalendar初始化中,作为组织问题,您可能需要考虑在初始化参数和内联js代码中放置函数调用。
像这样:
function dayClickEvent(date, allday, jsEvent, view){
//do something with date, allday, jsEvent, view
}
function eventClickEvent(event, jsEvent, view){
//do something with event, jsEvent, view
}
function eventAfterRenderEvent(event, element, view){
//do something with event, element, view
}
function eventMouseoverEvent(event, jsEvent, view){
//do something with event, element, view
}
function eventMouseoutEvent(event, jsEvent, view){
//do something with event, element, view
}
function viewDisplayEvent(view){
//do something with view
}
function loadingEvent(bool){
//do something with bool
}
然后当你初始化时:
$('#fullcalendar').fullCalendar({
theme: true,
header: {
theme: true,
left: 'prev,next today',
center: 'title',
right: 'month,agendaWeek,agendaDay'
},
editable: true,
eventSources: [
{
url: 'my/calender/data/url',
cache: false,
type: 'POST',
data: {
ourl: 'my/actionable/url',
myProperty: $("#foo").data("val") || ''
},
error: function (prob) {
//handle ajax error for event load
}
}
],
dayClick: function (theDate, allDay, jsEvent, view) {
dayClickEvent(theDate, allDay, jsEvent, view);
},
eventClick: function (event, jsEvent, view) {
eventClickEvent(event, jsEvent, view);
},
eventAfterRender: function (event, element, view) {
eventAfterRenderEvent(event, element, view);
},
eventMouseover: function (event, jsEvent, view) {
eventMouseoverEvent(event, jsEvent, view);
},
eventMouseout: function (event, jsEvent, view) {
eventMouseoutEvent(event, jsEvent, view);
},
viewDisplay: function (view) {
viewDisplayEvent(view)
},
loading: function (bool) {
loadingEvent(bool)
}
});
至于你的ajax问题......不知道你的端点(服务器/ app / page)是如何配置的,下面是一个带有铃声和口哨声的ajax调用示例(你的ajax调用似乎缺少一些属性):
$.ajax({
type: 'POST',
url: "my/Url/Here",
dataType: "json",
data: JSON.stringify({myProperty:"myValue"}),
cache: false,
contentType: "application/json; charset=utf-8",
traditional: true,
success: function (returnObject) {
///do something with returnObject
},
error: function (exception) {
///exception.responseText will contain any pertinent errors returned from server.
}
});
您可以查看here for more on jQuery $.ajax() method.
我会说 - 检查你的端点(服务器/ app / page)是如何配置的(例如 - 它要从它要处理的请求中接受/查找它是什么),并相应地参数化/调整你的ajax调用。 / p>