Ver Mensaje Individual
  #1 (permalink)  
Antiguo 13/05/2013, 04:11
geofran80
 
Fecha de Ingreso: septiembre-2006
Mensajes: 139
Antigüedad: 18 años, 2 meses
Puntos: 14
Enlazar tareas a calendario al seleccionar un proyecto

Buenos días,

Quería agregar un calendario a mi proyecto que hago uso del patrón MVC y opté por fullcalendar:

El problema viene en el momento que intento codificar la respuesta json. El código que uso es el siguiente:

proyectosModel.php
Código:
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
Código:
public function obtenerTareasProyecto() {
        echo json_encode($this->_proyectos->obtenerTareasProyecto($this->getTexto('idProyecto')));
    }

proyectos.js
Código:
$(document).ready(function(proyecto){
       var cargarTareas = $.post('/distribucion/proyectos/obtenerTareasProyecto',
       {
       idProyecto: proyecto
       }, function(datos){
         //Aquí debería enlazar el titulo, la fecha de inicio y la fecha final con los eventos pero no sé cómo.
        }, '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: //¿Cómo puedo agregar los eventos desde el método $.post()?
           
            }
            ]
        });
}

En el fichero de javascript es donde cargo con ajax los eventos mediante $.post() pero no sé como agregarlos a events:[] que es el array en formato Json para enlazar los eventos en mi caso tareas de un proyecto. Supongo que tendría que crear un array en la función $.post para luego enlazar con la función fullCalendar().

Saludos cordiales.
Francisco J.