[英]Add if to event in FullCalendar
我想在完整日歷的事件內部添加一個IF,例如,如果date不為null,則使用date,否則,請使用dow。 這樣的事情,但這給了我白色的屏幕。
events: [<?php
while($row_events = mysqli_fetch_array($resultado_events)){
?>
{
title: '<?php echo $row_events['title'];?>',
if(<?php echo $row_events['date']; ?> != '')
{
start: '<?=$row_events['date'].' '.$row_events['start'];?>',
end: '<?=$row_events['date'].' '.$row_events['end'];?>',
}
else {
start: '<?php echo $row_events['start']; ?>',
end: '<?php echo $row_events['end']; ?>',
dow: [ <?php echo $row_events['dow']; ?> ],
}
},<?php
}
?>],
因此,基本上,它應該像這樣工作。 如果有日期,它將使用該日期並且僅在該日期顯示;如果數據庫中的日期為null,請使用dow並重復發生該事件。
“給我白色的屏幕”
這可能是PHP錯誤。 或者,如果頁面中除了fullCalendar之外沒有其他內容,則可能是JavaScript錯誤,導致日歷代碼無法運行以顯示日歷。 您是否啟用PHP錯誤報告以檢查服務器錯誤? 您是否在瀏覽器的控制台中查看了JavaScript錯誤? 如果是這樣,您還沒有在這里報告。 如果您進行檢查和學習調試,它將幫助您更輕松地解決問題。
無論如何,從代碼中我都可以看到這是JavaScript語法錯誤-您不能在對象文字中放入if
語句-它是數據結構,而不是代碼塊。
創建事件數據的一種更可靠和可維護的方法是在純PHP中創建必需的對象,然后將其編碼為JSON以輸出到JavaScript(在其中您可以將其注入,就像它是對象文字一樣,並對其進行處理)直接作為代碼,無需任何解析)。 這是一個例子:
首先在PHP中創建事件數組:
$events = array();
while($row_events = mysqli_fetch_array($resultado_events))
{
$event = array();
$event["title"] = $row_events['title'];
if($row_events['date'] != "")
{
$event["start"] = $row_events['date'].' '.$row_events['start'];
$event["end"] = $row_events['date'].' '.$row_events['end'];,
}
else {
$event["start"] = $row_events['start'];
$event["end"] = $row_events['end'];
$event["dow"] = explode(",", $row_events['dow']); //N.B. exactly how you do this might depend on the precise content of your "dow" field, e.g. if values are separated by just comma, or comma and a space
}
}
$eventsJSON = json_encode($events);
然后,在腳本的下方,添加JavaScript代碼,您可以簡單地編寫:
events: <?php echo $eventsJSON; ?>,
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.