2016-09-28 70 views
0

如何獲取events中的事件數組我如果給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

「不工作」...這是一個相當模糊的描述。詳細解釋(如有必要,舉例)您希望發生什麼,以及發生了什麼。 – ADyson

+0

我想這種類型的輸出它是完美的輸出,當我把固定索引0和1日曆顯示,但是當我用循環內部事件[]日曆不顯示。當我把array3裏面的事件[]日曆也不會顯示 –

+0

請編輯這個問題,不要在註釋裏放大量的代碼,這很難讀! – ADyson

回答

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); 
    } 
}); 

附:這是針對這個特定問題的最簡單的解決方案,但是如果您能夠控制PHP從服務器返回的內容,那麼我會以fullCalendar所需的正確格式返回一組事件,而不是在像這樣的客戶端。以這種方式管理它會容易得多(在我看來)。例如,那麼你可以寫一些像:

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

在客戶端。並且您將更改PHP以將正確的信息插入到$calendarEvents陣列中的對象中。

+0

它是完美的解決方案..感謝...但我應該怎麼做時間相同的日期.. ?開始:js_array [i] +'T'+ js_array1 [i],這是一個正確的方式或不... ...? –

+0

是的,假設數據的格式是正確的,給出你當前的代碼將是解決它的方法。順便說一句,如果答案已幫助你,請不要忘記接受它和/或upvote - 謝謝:-) – ADyson

+0

我是嘗試,但它不工作,日曆不顯示,然後我會嘗試js_array [i] +'T12:30: 00'但仍然不工作日曆消失我不知道實際發生了什麼如何解決此問題 –

相關問題