2016-05-19 8 views
0

Ich bin ein Neuling zu Vollkalender und Ajax. Ich habe Schwierigkeiten beim Abrufen von Daten aus der Datenbank und diese Daten sollten in meinem Vollkalender angezeigt werden. Ich habe einen Code versucht, um das Gleiche zu tun. aber ich bin nicht in der Lage, Daten über AJAX als JSON-Feed zu erhalten. Bis jetzt bekomme ich Daten von der Datenbank durch codeigniter MVC. aber ich kann Daten an das Vollkalender-Ereignis übergeben.FullCalendar: Wie man Daten von DB und in Ereignissen (als ein json-Feed) erhält

The following is my view file: calendar.php 


<script> 
$(document).ready(function() { 


$.ajax({ 
    url: "<?php echo base_url() ?>/common/calendar/show_holidays", 
    type: 'POST', // Send post data 
    data: 'type=fetch', 
    async: true, 
    success: function(s){ 
      freshevents = s;//alert(s); 
    } 
}); 

$('#calendar').fullCalendar('addEventSource', JSON.parse(freshevents)); 

    /* initialize the calendar 
    -----------------------------------------------------------------*/ 

    $('#calendar').fullCalendar({ 
     //events: JSON.parse(json_events), 
     //events: [{"id":"14","title":"New Event","start":"2015-01-24T16:00:00+04:00","allDay":false}], 
     utc: true, 
     header: { 
      left: 'prev,next today', 
      center: 'title', 
      right: 'month,agendaWeek,agendaDay' 
     }, 
     editable: true, 
     droppable: true, 
     events: { 

     } 

    }); 

    }); 
    </script> 

Antwort

2

Zuerst müssen Sie SQL resultset zu JSON analysieren, können Sie das tun, mit den nächsten PHP Funktionen:

Verbindung zu DB-Funktion:

function connectDB(){ 
    $con = mysqli_connect("HOST", "USER", "PASS", "DB"); 
    if($con){ 
     echo 'OK'; 
    }else{ 
     echo 'KO'; 
    } 
    return $con; 
} 

Funktion zu von DB trennen:

function disconnectDB($con){ 
    $close = mysqli_close($con); 

    if($close){ 
     //echo 'OK'; 
    }else{ 
     //echo 'KO'; 
    } 
    return $close; 
} 

Funktion, um JSON pa zu erhalten rse von einem resultset:

function getArraySQL(){ 
    $conexion = connectDB(); 
    //generate SQL query 
    if(!$result = mysqli_query($conexion, "SELECT title,color,start FROM events")) die(); 

    $rawdata = array(); 

    while($row = mysqli_fetch_array($result)) 
    { 
     $title=$row['title']; 
     $color=$row['color']; 
     $start=$row['start']; 

     $rawdata[] = array('title'=> $title, 'color'=> $color, 'start'=> $start); 
    } 
    disconnectDB($conexion); 
    //Parse to JSON and return 
    $rawdata=json_encode($rawdata); 
    return $rawdata; 
} 

Nach diesem Schritt können Sie umfassen JSON in Ihr events Kalender Skript zurückgegeben:

$(document).ready(function() { 
    $('#calendar').fullCalendar({ 
     header: { 
      left: 'prev,next today', 
      center: 'title', 
      right: 'month,agendaWeek' 
     }, 
     events: <?php 
     $result = array(); 
     $result=getArraySQL(); 
     if(isset($result)){ 
      echo $result; 
     } 
     ?>, 
     eventRender: function (event, element) { 
     element.attr('href', 'javascript:void(0);'); 
     element.click(function() { 
      alert(event.title); 
     }); 
    } 
    }); 

}); 

Hope this Ihnen helfen können.

+0

ok yaaar, kann es mit addEventSource ..? – Keynes