2013-05-13 78 views
0

早安負荷項目任務的Ajax .post的$方法,在fullcalendar

我想一個fullcalendar添加到我的MVC項目。

當我嘗試使用項目任務對json進行編碼時,問題就出現了。我使用的代碼如下:

proyectosModel.php

public function obtenerTareasProyecto($idProyecto){ 
    $sql = "SELECT tareasProyectos.nombre as title, tareasProyectos.fechaInicio as start, tareasProyectos.fechaLimite as end, tareasProyectos.estado , proyectos.idProyecto, proyectos.nombre as NombreProyecto, usuarios.codUsuario, usuarios.nombre, usuarios.apellido1, usuarios.apellido2\n"; 
    $sql .= "FROM tareasProyectos\n"; 
    $sql .= "JOIN proyectos on tareasProyectos.FKidProyecto = proyectos.idProyecto\n"; 
    $sql .= "JOIN usuarios on tareasProyectos.FKusuarioAsignado = usuarios.codUsuario\n"; 
    $sql .= "WHERE tareasProyectos.FKidProyecto ='" . $idProyecto . "'"; 
    $tareasProyecto = $this->_db->query($sql); 
    return $tareasProyecto->fetchall(PDO::FETCH_ASSOC); 
} 

proyectosController.php

public function obtenerTareasProyecto() { 
    echo json_encode($this->_proyectos->obtenerTareasProyecto($this->getTexto('idProyecto'))); 
} 

proyectos.js

$(document).ready(function(proyecto){ 
    var cargarTareas = $.post('/distribucion/proyectos/obtenerTareasProyecto', 
    { 
    idProyecto: proyecto 
    }, function(datos){ 
    //Here I need to link the title, start and end properties. 
    }, 'json'} 

    //Cargamos el calendario principal 
    $("#calendario").fullCalendar({ 
     weekMode:'variable', 
     header:{ //Cabecera 
      left: 'month,basicWeek,agendaDay', 
      center: 'title', 
      right: 'today prev,next' 
     }, 
     firstDay:1, //Primer día de la semana 
     selectable: true, //Fechas seleccionables 
     titleFormat:{//Formato del título del calendario 
      month: "MMMM yyyy", 
      week: "d 'd&#101' MMMM", 
      day: "dddd, d 'd&#101' MMMM, yyyy" 
     }, 
     columnFormat:{ 
      month:"dddd", 
      week:"dddd d/M", 
      day:"dddd d/M" 
     }, 
     monthNames:['Enero','Febrero','Marzo','Abril','Mayo','Junio','Julio','Agosto','Septiembre','Octubre','Noviembre','Diciembre'], 
     monthNamesShort:['Ene','Feb','Mar','Abr','May','Jun','Jul','Ago','Sep','Oct','Nov','Dic'], 
     dayNames: ['Domingo', 'Lunes', 'Martes', 'Miércoles', 'Jueves', 'Viernes', 'Sábado'], 
     dayNamesShort:['Dom','Lun','Mar','Mie','Jue','Vie','Sab'], 
     buttonText:{ 
      month:'mes', 
      week:'semana', 
      day: 'día', 
      today:'Hoy' 
     }, 
     eventSources: [ 
     { 
      events: //¿how can I do with the $.post() method? 

     } 
     ] 
    }); 

}

在JavaScript文件中,我使用$ .post()方法加載ajax,但我不知道如何請求每個事件或項目任務的標題,開始和結束屬性。

乾杯。 Francisco J.

+0

你的'datos'對象在'post'函數中看起來像什麼?它實際上是否反映了您期望從服務器獲得的數據? – Shaded 2013-05-13 15:00:46

+0

感謝Shaded,post函數中的數據引用了我使用Model從數據庫中獲得的數據。我想我應該遍歷數據庫,但我怎麼能將項目添加到fullcalendar?先謝謝了。 – 2013-05-13 15:24:58

回答

1

我想你需要做的就是將你的php調用分配爲eventSource,就像他們在Events (as a json feed) jquery.ajax示例中所做的那樣。你要指定參數,像...

events: { 
    url: '/distribucion/proyectos/obtenerTareasProyecto', 
    type: 'POST', 
    data: { 
     idProyecto: proyecto 
    } 
} 

然後它會採取JSON回報,(如果它的正確格式),將其轉換成日曆事件。

希望這會有所幫助!

+0

我得到了使用$ .post()jquery方法,但當我改變到另一個月或更改之間的意見(月,basicWeekd或basicDay)我失去了事件。我該怎麼辦才能堅持下去? 感謝您的回覆陰影。 – 2013-05-13 16:16:52

+0

親愛的朋友們,我使用stick參數將其設置爲true,並且在更改視圖後日歷仍然是事件。 謝謝大家。 Francisco J. – 2013-05-13 16:29:02