11

jQueryfullcalendarをPHPWebサイトに統合したいのですが、イベントの処理方法とMySQLのJSONデータの使用方法がわかりません。

何かアドバイスをいただければ幸いです。

4

11 に答える 11

15

PHPが次の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/" 
      ) 

   ));

?>
于 2009-11-03T09:17:13.197 に答える
9

「2010-02-1111:00:00」形式は、時間を指定するために正常に機能します(「T」は含まれません)。解決策の鍵は、イベントの「allDay」属性を空の文字列に設定することです。

于 2010-02-10T06:12:28.083 に答える
3

私は同じ問題を抱えていて、それを機能させる方法を見つけました。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);

お役に立てば幸いです:)。

于 2010-01-08T16:39:33.843 に答える
3

PHPの場合-JSON:

$eventsArray['allDay'] = "false"; //doesn't work

$eventsArray['allDay'] = false; //did the trick to have a NON FULL DAY correctly rendered!!
于 2012-09-20T12:15:32.653 に答える
1

この方法で実装すると、正常に機能します

$result = mysql_query("SELECT * FROM eventoform",$conexion);
        $array = array();
        $i = 0;
        while ($row = mysql_fetch_array($result)) {
            $array[$i]=array("id"=>$row["id_evento"],"title"=>$row["NombreEvento"],"start"=>$row["FechaInicio"]." ".$row["HoraInicio"],"allDay"=>false,"description"=>$row["description"],"editable"=>true);
            $i++;
        }

 echo json_encode($array);
于 2011-06-14T04:54:08.533 に答える
1

イベントをエコーするための出力は、次の形式である必要があります。

$('#calendar').fullCalendar({
  events: [{
    title: 'Awesome Event Title', 
    start: new Date($start_year, $start_month, $start_day),     or   end: new Date(y, m, d),
    end: new Date($end_year, $end_month, $end_day)    or   end: new Date(y, m, d)
  }]
});
于 2011-01-04T18:57:08.263 に答える
0

ねえ、私は上記のコードを使用していませんが、json_events.phpのデフォルトのコードでは、php出力の最初に「[」があり、最後に「]」があります。

于 2010-04-19T00:07:55.013 に答える
0

この例は機能します:

$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);
于 2010-05-27T08:15:24.537 に答える
0

私はjqueryに精通していません。しかし、問題は、Ajaxの非同期性を考慮していないことだと思います。

fullCalendar()が非常に奇妙なことをしない限り(Ajaxリクエストを起動して応答を待つ)、fullCalendarは応答までに実行を終了するため、そのように関数で外部ソースを使用することはできません。サーバーから戻ってきます。

週のカレンダーのWebページで何をしようとしているのか明確な例はないようですが、必要なのはイベントなしで、イベントを追加するために定義されたコールバックを使用してカレンダーを作成することです。その後、何らかの方法で外部呼び出しを開始します。

于 2009-11-03T14:10:42.710 に答える
0

あなたは私と同じ問題を抱えていると思います。fullCalendar javascriptが正しく解釈するようにDateTimeを設定する方法を見つけようとして、Webを検索しました。(このページには、それに対するいくつかの良い手がかりがありました:http: //blog.stevenlevithan.com/archives/date-time-format)。

私はこれをfullCalendarの問題ページに投稿し、作成者または他の誰かがこの主題に光を当てることを望んでいます。

====================問題の説明====================

問題を再現する手順は何ですか?

  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ページを使用しています。私の推測では、でDateTime返すJavaScriptオブジェクトの形式に問題がJSONあり、これがfullcalendarイベントをとして解釈していると思われfullDayEventsます。で送信する形式 JSONは次のとおり2009-11-17T11:01:00です。

于 2009-11-18T09:07:06.020 に答える
0

誰かがjbuilderでrailsを使用してjsonフィードを生成している場合に備えて... allDay属性を追加する必要があります...

json.array!(@resubmissions) do |object|
  json.id object.id
  json.title "WVL - #{object.to_s}"
  json.start object.resubmission_at.to_i
  json.allDay false
end

ただし、PHPソリューションに感謝します。

于 2013-05-13T17:22:14.900 に答える