fullcalendar mysql select WHERE 当前日期范围
fullcalendar mysql select WHERE current date range
我有 fullcalendar 与 mysql 数据库一起使用 php 从数据库中获取数据。我正在尝试使用来自 fullcalendars 'getview' 的数据修改 select。
我需要每月第一天的当前视图,我正在尝试实现此代码:
resources:
{
url: 'resources.php',
data: {'period_start': moment( $("#calendar").fullCalendar("getView").intervalStart ).format("YYYY-MM-DD"), 'period_end': moment( $("#calendar").fullCalendar("getView").intervalEnd ).format("YYYY-MM-DD") } ,
// data:{'period_start':test},
type: 'POST',
error: function() {
$('#script-warning').show();
}
},
不幸的是,这总是给我当前日期,而不是视图的开始时间或其他任何信息。我在这里错过了什么?
一切都完美地进入 mysql,select 与 post 一起工作。唯一的问题是它总是给我今天的日期,这是没用的。
如果我使用这段代码,它会完美运行。当点击一个事件时,它会给我当前视图的第一天:
eventClick: function(event) {
alert(moment( $("#calendar").fullCalendar("getView").intervalStart ).format("YYYY-MM-DD"));
},
编辑:
我添加了一个功能:
function start(){
var view =$("#calendar").fullCalendar("getView").start;
return view};
当我在 eventclick 中使用 start() 时,它工作得很好,但当我在资源中使用时却不行。我猜我必须将资源构建为一个函数 (link),但我太菜鸟了,无法理解这一点。我什至可以以某种方式使用函数从 mysql 获取提要吗?
我想出了这个半美元的解决方案。可以,但需要用户进行一些不必要的刷新以获取最新信息。
function start(){return Cookies.get('fullCalendarStart');};
$('#calendar').fullCalendar({
viewRender: function(view) {
Cookies.set('fullCalendarStart', view.intervalStart.format(), {path: ''});
},
resources:
{
url: 'resources.php',
data:{'period_start':start()},
type: 'POST'
}
{)
这会将视图的开始日期 post 设为 resources.php post,我可以在 mysql select 中使用它。您可以从 Fullcalendar 添加您喜欢的任何内容,将其放入 cookie 中并以这种方式在 mysql select 中使用。
不幸的是,这不是完美的解决方案,我仍然希望它在没有 cookie 的情况下也能正常工作。
编辑
以及更好的解决方案:
resources: function(callback){
setTimeout(function(){
var view = $('#calendar').fullCalendar('getView');
$.ajax({
url: 'feed.php',
dataType: 'json',
cache: false,
data: {
start: view.start.format(),
end: view.end.format(),
timezone: view.options.timezone
}
}).then(function(resources){callback(resources)});
},0);
},
这将像获取事件时一样添加开始和结束参数。你可以加
$feed_start = $_GET['start'];
到 feed.php
并在 mysql select 中使用变量 '$feed_start'
。
我从 https://github.com/fullcalendar/fullcalendar-scheduler/issues/246?_pjax=%23js-repo-pjax-container
得到了输入
我有 fullcalendar 与 mysql 数据库一起使用 php 从数据库中获取数据。我正在尝试使用来自 fullcalendars 'getview' 的数据修改 select。 我需要每月第一天的当前视图,我正在尝试实现此代码:
resources:
{
url: 'resources.php',
data: {'period_start': moment( $("#calendar").fullCalendar("getView").intervalStart ).format("YYYY-MM-DD"), 'period_end': moment( $("#calendar").fullCalendar("getView").intervalEnd ).format("YYYY-MM-DD") } ,
// data:{'period_start':test},
type: 'POST',
error: function() {
$('#script-warning').show();
}
},
不幸的是,这总是给我当前日期,而不是视图的开始时间或其他任何信息。我在这里错过了什么?
一切都完美地进入 mysql,select 与 post 一起工作。唯一的问题是它总是给我今天的日期,这是没用的。
如果我使用这段代码,它会完美运行。当点击一个事件时,它会给我当前视图的第一天:
eventClick: function(event) {
alert(moment( $("#calendar").fullCalendar("getView").intervalStart ).format("YYYY-MM-DD"));
},
编辑:
我添加了一个功能:
function start(){
var view =$("#calendar").fullCalendar("getView").start;
return view};
当我在 eventclick 中使用 start() 时,它工作得很好,但当我在资源中使用时却不行。我猜我必须将资源构建为一个函数 (link),但我太菜鸟了,无法理解这一点。我什至可以以某种方式使用函数从 mysql 获取提要吗?
我想出了这个半美元的解决方案。可以,但需要用户进行一些不必要的刷新以获取最新信息。
function start(){return Cookies.get('fullCalendarStart');};
$('#calendar').fullCalendar({
viewRender: function(view) {
Cookies.set('fullCalendarStart', view.intervalStart.format(), {path: ''});
},
resources:
{
url: 'resources.php',
data:{'period_start':start()},
type: 'POST'
}
{)
这会将视图的开始日期 post 设为 resources.php post,我可以在 mysql select 中使用它。您可以从 Fullcalendar 添加您喜欢的任何内容,将其放入 cookie 中并以这种方式在 mysql select 中使用。
不幸的是,这不是完美的解决方案,我仍然希望它在没有 cookie 的情况下也能正常工作。
编辑
以及更好的解决方案:
resources: function(callback){
setTimeout(function(){
var view = $('#calendar').fullCalendar('getView');
$.ajax({
url: 'feed.php',
dataType: 'json',
cache: false,
data: {
start: view.start.format(),
end: view.end.format(),
timezone: view.options.timezone
}
}).then(function(resources){callback(resources)});
},0);
},
这将像获取事件时一样添加开始和结束参数。你可以加
$feed_start = $_GET['start'];
到 feed.php
并在 mysql select 中使用变量 '$feed_start'
。
我从 https://github.com/fullcalendar/fullcalendar-scheduler/issues/246?_pjax=%23js-repo-pjax-container