Интеграция jQuery fullcalendar в веб-сайт PHP

Я предполагаю в управляемой среде, утечка была бы Вами сохраняющий ненужную ссылку на большой блок памяти вокруг.

11
задан Anthony Potts 6 April 2010 в 21:30
поделиться

7 ответов

Убедитесь, что ваш PHP может выводить f соответствующий HTML-код :

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
                    "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
  <script src="http://code.jquery.com/jquery-latest.js"></script>

  <script>
  $(document).ready(function(){
    $('#example').calendar();
  });
  </script>

</head>
<body>
  <link rel="stylesheet" href="http://dev.jquery.com/view/trunk/themes/flora/flora.all.css" type="text/css" media="screen" title="Flora (Default)">
<script  src="http://dev.jquery.com/view/trunk/plugins/calendar/jquery-calendar.js"></script>
<input type="text" id="example" value="Click inside me to see a calendar" style="width:300px;"/>
</body>
</html>

Вот пример , как вы можете это сделать, используя json_encode :

$(document).ready(function() { 

      $('#calendar').fullCalendar({ 
         draggable: true, 
         events: "json_events.php", 
         eventDrop: function(event, delta) { 
            alert(event.title + ' was moved ' + delta + ' days\n' + 
               '(should probably update your database)'); 
         }, 
         loading: function(bool) { 
            if (bool) $('#loading').show(); 
            else $('#loading').hide(); 
         } 
      }); 

   });

А вот код PHP:

<?php

   $year = date('Y'); 
   $month = date('m');

   echo json_encode(array( 

      array( 
         'id' => 1, 
         'title' => "Event1", 
         'start' => "$year-$month-10", 
         'url' => "http://yahoo.com/" 
      ), 

      array( 
         'id' => 2, 
         'title' => "Event2", 
         'start' => "$year-$month-20", 
         'end' => "$year-$month-22", 
         'url' => "http://yahoo.com/" 
      ) 

   ));

?>
15
ответ дан 3 December 2019 в 02:30
поделиться

Я не знаком с jquery. Но я думаю проблема в том, что вы не принимаете во внимание асинхронную природу Ajax.

Если fullCalendar () не делает что-то очень странное (запускает запрос Ajax и ожидает ответа), вы не сможете использовать внешний источник в функции таким образом, потому что fullCalendar завершит выполнение раз ответ приходит от сервера.

Кажется, нет четкого примера того, что вы пытаетесь сделать на веб-странице календаря недели, но я уверен, что вам нужно создать календарь без событий, но с функцией обратного вызова, определенной для добавления событий. ; а затем каким-то образом отключить внешний вызов.

0
ответ дан 3 December 2019 в 02:30
поделиться

Думаю, у вас та же проблема, что и у меня. Я искал в Интернете, пытаясь узнать, как настроить DateTime, чтобы javascript fullCalendar правильно интерпретировал его. (На этой странице есть несколько хороших подсказок: http://blog.stevenlevithan.com/archives/date-time-format ).

Я разместил это на странице проблем с полным календарем, надеясь, что создатель или кто-нибудь еще пролил бы свет на эту тему.

==================== ОПИСАНИЕ ПРОБЛЕМЫ ============== ======

Какие шаги будут воспроизводить проблему?

  1. Получение событий с использованием JSON
  2. используйте эту строку JSON:

[{"id":2, "title":"title of 2","start":"2009-11-17T10:00:00" ,"end":"2009-11-17T11:01:00","url":"?eventID=2"}]

Каков ожидаемый результат? Что вы видите вместо этого?

  • Я ожидаю, что мероприятие появится в календаре с указанием времени начала 10:00 и время окончания 11:01.
  • Оно отображается как мероприятие на весь день.

Какую версию продукта вы используете? В какой операционной системе?

  • FullCalendar v1.4.1
  • Windows XP

Пожалуйста, предоставьте любую дополнительную информацию ниже.

Я использую страницу aspx для получения календарных событий. Я предполагаю, что что-то не так с форматом объекта JavaScript DateTime что я возвращаюсь в JSON и что это вызывает fullcalendar к интерпретировать события как fullDayEvents . Формат, который я отправляю в JSON : 2009-11-17T11: 01: 00 .

0
ответ дан 3 December 2019 в 02:30
поделиться

У меня была такая же проблема и просто узнала, как сделать его работу. Вот код, который вы должны использовать в вашем файле PHP:

$query = "select * from events where accountNo = '$accountNo'";
$res = mysql_query($query) or die(mysql_error());
$events = array();
while ($row = mysql_fetch_assoc($res)) {
    $start = "2010-01-08T08:30"";//Here you have to format data from DB like this.
    $end = "2010-01-08T08:30";//This format works fine
    $title = $row['firstName']." ".$row['lastName'];
    $eventsArray['id'] =  $row['id'];
    $eventsArray['title'] = $title;
    $eventsArray['start'] = $start;
    $eventsArray['end'] = $end;
    $eventsArray['allDay'] = "";
    $events[] = $eventsArray;
}


echo json_encode($events);

Я надеюсь, что это поможет :).

3
ответ дан 3 December 2019 в 02:30
поделиться

Формат «2010-02-11 11:00:00» отлично подходит для указания времени для меня (без буквы «T» внутри), ключ к решению - установить атрибут allDay для событие для пустой строки.

9
ответ дан 3 December 2019 в 02:30
поделиться

Привет, я не использовал ваш код выше, но в json_events.php код по умолчанию, есть "[" в начале вывода php и "]" в конце .

0
ответ дан 3 December 2019 в 02:30
поделиться

Этот пример работает:

$sql= "SELECT id, title, start, DATE_FORMAT(start, '%Y-%m-%dT%H:%i' ) AS startDate
FROM kalender
ORDER BY startDate DESC";
$res = mysql_db_query($db, $sql, $conn) or die(mysql_error());

$events = array();
//important ! $start = "2010-05-10T08:30";  iso8601 format !!
while ($row = mysql_fetch_assoc($res)) {
   $eventArray['id'] = $row['id'];
   $eventArray['title'] =  $row['title'];
   $eventArray['start'] = $row['startDate'];
   $events[] = $eventArray;
}
echo json_encode($events);
0
ответ дан 3 December 2019 в 02:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: