Добавить если к событию в FullCalendar - PullRequest
0 голосов
/ 16 мая 2019

Я хочу добавить IF в события в полном календаре, например, если дата не является нулевой, используйте дату, в противном случае используйте 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
                        }
                    ?>],

Так что в принципе, это должно работать так.Если у него есть дата, он будет использовать дату и будет отображаться только в тот день, если дата в базе данных равна нулю, используйте dow и повторите событие.

1 Ответ

1 голос
/ 16 мая 2019

"дает мне белый экран"

Это может быть ошибка 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; ?>,
...