无法添加通过弹出框输入的事件标题
我有这个jquery代码,我把我的ajax代码:
$(document).ready(function() {
var date = new Date();
var d = date.getDate();
var m = date.getMonth();
var y = date.getFullYear();
var calendar = $('#calendar').fullCalendar({
editable: true,
events: "http://localhost/test/events.php",
selectable: true,
selectHelper: true,
select: function(start, end, allDay) {
var title = prompt('Event Title:');
if (title) {
/*
start = $.fullCalendar.formatDate(start, "yyyy-MM-dd HH:mm:ss");
end = $.fullCalendar.formatDate(end, "yyyy-MM-dd HH:mm:ss");
$.ajax({
url: 'http://localhost/test/add_events.php',
data: 'title='+ title+'&start='+ start +'&end='+ end ,
type: "POST",
success: function(json) {
alert('OK');
}
});
*/
calendar.fullCalendar('renderEvent',
{
title: title,
start: start,
end: end,
allDay: allDay
},
true // make the event "stick"
);
}
calendar.fullCalendar('unselect');
}
});
});
然后是add_events。php插入查询写入
<?php
$title=$_POST['title'];
$start=$_POST['start'];
$end=$_POST['end'];
// connect to the database
try {
$bdd = new PDO('mysql:host=localhost;dbname=fullcalendar', 'root', '');
} catch(Exception $e) {
exit('Can not connect to the database.');
}
$sql = "INSERT INTO evenement (title, start, end) VALUES (:title, :start, :end)";
$q = $bdd->prepare($sql);
$q->execute(array(':title'=>$title, ':start'=>$start, ':end'=>$end));
?>
我从我的default.html中注释了一个代码片段,因为我认为这就是问题所在。当我注释这个代码片段时,我可以通过一个弹出框添加一个事件,在确认事件标题之后,事件标题将在我的fullCalendar中明显可见(但尚未添加到数据库中)。但是,如果我"取消注释"该部分,通过弹出框键入的事件标题不会出现在我的fullCalendar中(显然,它还没有添加到我的数据库中)
有人可以帮助我编辑我的ajax代码,这样我就可以使键入的事件标题通过弹出框出现在我的fullCalendar和成功添加在我的数据库。
提前感谢!
我认为你的错误是在你的Ajax调用和你设置你的数据后调用的方式。
你的data属性应该是这样的:
var start = $.fullCalendar.formatDate(start, "yyyy-MM-dd HH:mm:ss");
var end = $.fullCalendar.formatDate(end, "yyyy-MM-dd HH:mm:ss");
var title = "Title name";
$.ajax({
url: 'http://localhost/test/add_events.php',
data: {
title: title,
start: start,
end: end
},
type: "POST",
success: function(json) {
alert('OK');
}
});