2012-11-21 152 views
1

我試圖將這個fullcalendar添加到我的yii應用程序。因爲這是我第一次,我已經試着學習http://arshaw.com/fullcalendar/docs的教程。但對我來說卻很難理解,因爲我在JQuery,JSON和其他方面很弱。所以任何人都可以一步一步地幫助我,從數據庫中添加事件需要做些什麼?fullcalendar需要幫助jquery

這是我的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( '#日曆')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(); 

    } 

}); 

另一件事要問,當我試圖添加事件與數組,它的作品,但它不可拖動。如何使它可拖動?

請幫助我。在此先感謝

回答

0

1日壞的原因,使請求protected,你需要爲輸出JSON創建行動fullcalendar

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

在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); 
} 

更改路徑對於拖動你的要求閱讀:http://arshaw.com/fullcalendar/docs/event_ui/Requirements/

你一個dd Yii::app()->ClientScript->registerCode('jquery.ui');


更新:

你需要包括通過 的Yii ::應用程序()的任何JS - > clientScript-> registerScriptFile,

,並在那裏你包括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'); 
+0

感謝您的幫助。我已經下載了所需的東西,但Idk在哪裏打電話給js。當我把它稱爲我認爲,像我如何調用calendar.js和fullcalendar.min.js: <腳本類型= '文本/ JavaScript的' SRC ='的baseUrl; ?>/JS /插件/ fullcalendar.min.js'> <腳本類型= 「文本/ JavaScript的」 SRC =「的baseUrl;?>/JS /定製/日曆.js「> 日曆不會出現。 – dyooolicious

+0

和我必須把這個代碼:** Yii :: app() - > ClientScript-> registerCode('jquery.ui'); **? – dyooolicious

+0

感謝您的幫助@Sergey 但不幸的是,我仍然無法獲得我的活動。你能告訴我什麼是正確的URL放在這個_url:'/path/todirectory/index.php?r=task/getTasks',_如果我在瀏覽器中getTasks的URL是:_http:// localhost /〜prg3/cpanelbee/calendar/getTasks_? – dyooolicious