1

このフルカレンダーを私の yii アプリに追加しようとしています。初めてなので、すでにhttp://arshaw.com/fullcalendar/docsからチュートリアルを学ぼうとしています。しかし、私はJQueryやJSONなどに弱いので、理解するのは静かに難しいです. データベースからイベントを追加するにはどうすればよいですか?

これは私のjson-events.phpです:

<?php

$query = Yii::app()->db->createCommand('SELECT TASKID, STARTTIME, ENDTIME
            FROM task');

$result = $query->queryAll();
foreach ($result as $row) {
    $data[] = array(
        'id' => $row['TASKID'],
        'start' => $row['STARTTIME'],
        'end' => $row['ENDTIME'],
        'allDay' => false,
        'editable' => true,
    );
}

echo json_encode($data);

これは正しいですか?そして、このphpをどこのディレクトリに置くべきですか?

これは私のcalendar.jsです:

jQuery('#calendar').fullCalendar({ eventSources: [

    // your event source
    {
        url: '/path/todirectory/protected/views/task/json-events.php',
        backgroundColor: '#3D8BFF',
        textColor: '#7AE4FF'
    }

    ],
    header: {
        left: 'prev,next today',
        center: 'title',
        right: 'month,agendaWeek,agendaDay'
    },
    editable: true,
    droppable: true, 
    drop: function(date, allDay) { 

        var originalEventObject = jQuery(this).data('eventObject');
        var copiedEventObject = jQuery.extend({}, originalEventObject);

        copiedEventObject.start = date;
        copiedEventObject.allDay = allDay;

        jQuery('#calendar').fullCalendar('renderEvent', copiedEventObject, true);

        jQuery(this).remove();

    }

});

配列でイベントを追加しようとすると、機能します。しかし、それはドラッグできません。ドラッグ可能にする方法は?

私を助けてください。前もって感謝します

4

1 に答える 1

0

にリクエストを送信する最初の不適切な理由protected。出力 json のアクションを作成する必要があります

TaskController.php で

public function actionGetTasks()
{
  $query = Yii::app()->db->createCommand('SELECT TASKID, STARTTIME, ENDTIME
            FROM task');
  $result = $query->queryAll();
  foreach ($result as $row) {
      $data[] = array(
          'id' => $row['TASKID'],
          'start' => $row['STARTTIME'],
          'end' => $row['ENDTIME'],
          'allDay' => false,
          'editable' => true,
      );
  }
  echo json_encode($data);
}

fullcalendar でパスを変更する

jQuery('#calendar').fullCalendar({ eventSources: [
    // your event source
    {
        url: '/path/todirectory/index.php?r=task/getTasks',

ドラッグ可能な要件については、http://arshaw.com/fullcalendar/docs/event_ui/Requirements/ をお読みください。

追加しYii::app()->ClientScript->registerCode('jquery.ui');ますか?


アップデート:

Yii::app()->clientScript->registerScriptFile を介して任意の js を含める必要があります。

そして、前に追加する必要がある js をインクルードする場所: (/views/layout/main.php にある可能性があります)

Yii::app()->ClientScript->registerCode('jquery.ui');
Yii::app()->ClientScript->registerScriptFile(Yii::app()->baseUrl . '/js/plugins/fullcalendar.min.js');
Yii::app()->ClientScript->registerScriptFile(Yii::app()->baseUrl . '/js/custom/calendar.js');
于 2012-11-21T04:35:08.787 に答える