我试图设置我的事件动态,但它不起作用

时间:2016-09-28 13:20:11

标签: javascript php jquery html5 codeigniter

如果在事件数组中获取事件,如果给js_array的工作提供修复索引,我会做什么,但是当我尝试通过for循环时它不起作用。当我在数组中推送var并在数组中打印时它也无法正常工作。

如何设置我的事件动态并在此数组中设置我为此做什么

以下是我正在做的事情的例子。

<script>
var js_array = new Array();
$(document).ready(function() {
var js_array =<?php echo json_encode($date);?>;
var js_array1 =<?php echo json_encode($time);?>;
var js_arr = js_array.length;

for (var i = 0; i < js_arr; i++) {
var evn ="{ title: All Day Event, start: "+js_array[i]+" },";
var array3 = new Array;
array3.push(evn);
var test = array3.toString();
console.log(test);
//alert(test);
}


$('#calendar').fullCalendar({
defaultDate: '2016-09-01',
editable: true,
eventLimit: true, // allow "more" link when too many events
events: [
//for (var i = 0; i < js_arr; i++) {
{
title: 'Appoinment',
start: js_array[0]
},
//}
{
title: 'Long Event',
start: js_array[1]
},
{
id: 999,
title: 'Repeating Event',
start: '2016-09-1216:00:00'
},
{

title: 'Repeating Event',
start: '2016-09-1216:00:00'
},
{
id: 999,
title: 'Repeating Event',
start: '2016-09-12T16:00:00'
},
{
title: 'Conference',
start: '2016-09-12',
end: '2016-09-13'
},
{
title: 'Conference',
start: '2016-09-12',
end: '2016-09-13'
},
{
title: 'Meeting',
start: '2016-09-12T10:30:00',
end: '2016-09-12T12:30:00'
},
{
title: 'Click for any link',
url: 'http://google.com/',
start: '2016-09-28'
}
]
//events: [test]
});

});

</script>

1 个答案:

答案 0 :(得分:0)

根据FullCalendar,“events”属性必须是数组,函数或返回JSON对象的URL。

您的原始代码(对于其他人阅读,请参阅编辑历史记录)试图在数组声明中运行for循环。这是完全无效的JS。我认为你的浏览器出现了控制台错误,尽管你没有提到。

您需要将此循环包含在函数中,然后从函数中返回事件数组(根据https://fullcalendar.io/docs/event_data/events_function/):

$('#calendar').fullCalendar({
    defaultDate: '2016-09-01',
    editable: true,
    eventLimit: true, // allow "more" link when too many events
    events: function(start, end, timezone, callback) {
      var event_arr = [];
      for (var i = 0; i < js_array.length; i++) {
         event_arr.push({ 
           title: 'Appointment', 
           start: js_array[i]
           //add any other properties here as required, e.g. end date/time
         });
      }
      callback(event_arr);
    }
});

P.S。这是解决这个特定问题的最简单的解决方案,但是如果您可以控制PHP从服务器返回的内容,我会以fullCalendar所需的正确格式返回一组事件,而不是在像这样的客户端。以这种方式管理它会更容易(在我看来)。例如,那么你可以写下这样的东西:

events: <?php echo json_encode($calendarEvents);?>

在客户端。并且您可以更改PHP以将正确的信息插入到$calendarEvents数组中的对象中。