用于在fullcalendar中加载项目任务的Ajax $ .post方法

时间:2013-05-13 10:30:40

标签: events project fullcalendar task

早上好,

我想在我的mvc项目中添加一个fullcalendar。

当我尝试使用项目任务对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。

1 个答案:

答案 0 :(得分:1)

我认为您需要做的是将您的php调用分配为eventSource类似于Events (as a json feed) jquery.ajax示例中的内容。您需要将参数指定为......

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

然后它将返回JSON并且(如果格式正确)将其转换为日历事件。

希望这有帮助!