【发布时间】:2019-07-30 13:59:55
【问题描述】:
我在我的项目中使用了 jQuery 完整日历。我的事件存储在 MS SQL Server 表(事件)中,我以“json”格式获取数据,但它没有呈现到完整日历中,事件也没有添加到表中....请任何人帮助我....
CREATE TABLE events (
id NUMERIC IDENTITY(1,1) NOT NULL,
title varchar(255) NOT NULL,
start_event datetime NOT NULL,
end_event datetime NOT NULL,
CONSTRAINT [PK_events] PRIMARY KEY CLUSTERED
(
id ASC
)
)
INSERT INTO events(title,start_event,end_event) VALUES
('meeting1', '2019-07-31 00:00:00', '2019-07-31 00:00:00'),
('meeting2', '2019-08-09 00:00:00', '2019-08-09 00:00:00');
应用程序/views/index.php:
$(document).ready(function() {
var calendar = $('#calendar').fullCalendar({
editable:true,
header:{
left:'prev,next today',
center:'title',
right:'month,agendaWeek,agendaDay'
},
events: {
url : '<?php echo site_url('Home/load');?>',
error: function()
{
alert("error");
},
success: function()
{
console.log("successfully loaded");
}
},
selectable:true,
selectHelper:true,
select: function(start, end, allDay)
{
var title = prompt("Enter Event Title");
if(title)
{
var start = $.fullCalendar.formatDate(start,"Y-MM-DD HH:mm:ss");
var end = $.fullCalendar.formatDate(end, "Y-MM-DD HH:mm:ss");
$.ajax({
url:"<?php echo site_url('Home/valid_calendar');?>",
type:"POST",
data:{title:title, start:start, end:end},
success:function()
{
calendar.fullCalendar('refetchEvents');
alert("Added Successfully");
}
})
}
},
应用程序/views/load.php:
$timezone = new DateTimeZone("UTC");
$sql = "select * from events";
$stmt = sqlsrv_query($conn,$sql);
if($stmt == false)
{
die(print_r(sqlsrv_errors(),true));
}
while($row = sqlsrv_fetch_array($stmt,SQLSRV_FETCH_ASSOC))
{
$data[] = array(
'title' => $row['title'],
'start_event' => $row['start_event']->format("Y-m-d H:i:s"),
'end_event' => $row['end_event']->format("Y-m-d H:i:s")
);
}
echo json.parse($data);
我的错误:
未捕获的类型错误:无法读取未定义的属性“hasTime”
我认为 PHP 日期时间和 Sql Server 日期时间不匹配... 所以我在 events load.php 中添加了以下代码
$timezone = new DateTimeZone("UTC");
$data[] = array(
'title' => $row['title'],
'start_event' => $row['start_event']->format("Y-m-d H:i:s"),
'end_event' => $row['end_event']->format("Y-m-d H:i:s")
);
$(document).ready(function() {
var calendar = $('#calendar').fullCalendar({
editable:true,
header:{
left:'prev,next today',
center:'title',
right:'month,agendaWeek,agendaDay'
},
events:" <?php echo site_url('Home/load');?>",
selectable:true,
selectHelper:true,
select: function(start, end, allDay)
{
var title = prompt("Enter Event Title");
if(title)
{
var start = $.fullCalendar.formatDate(start,"Y-MM-DD HH:mm:ss");
var end = $.fullCalendar.formatDate(end, "Y-MM-DD HH:mm:ss");
$.ajax({
url:"<?php echo site_url('Home/valid_calendar');?>",
type:"POST",
data:{title:title, start:start, end:end},
success:function()
{
calendar.fullCalendar('refetchEvents');
alert("Added Successfully");
}
它给我的输出是:
[
{"title":"hi","start_event":"2019-07-31 00:00:00","end_event":"2019-07-31 00:00:00"},
{"title":"dsfdfdfd","start_event":"2019-08-09 00:00:00","end_event":"2019-08-09 00:00:00"}
]
但在我的网址中:http://localhost/calendar_sql/index.php/Home/load?start=2019-06-30&end=2019-08-11&_=1564490059946
在我的网址中,我没有在任何地方传递这些数据 开始=2019-06-30&结束=2019-08-11
【问题讨论】:
标签: php jquery sql-server fullcalendar fullcalendar-3