2015-06-04 29 views
5

Tamam Bir takvimi doldurmak için bir MySQL veritabanından olayları çekmeye çalışıyorum. Başlangıç ​​zamanları Unix saatinde saklanır, böylece aşağıdaki olaylar kaynağını kullandım.Veritabanı ile tam veritabanı oluşturma

events: { 
    url: '/php/booking_events.php', 
    type: 'POST', 
    data: { 
     start: start.unix(), 
     end: end.unix(), 
     branch: branch.id_office, 
     instrument: inst 
    }, 
    error: function() { 
     alert('there was an error while fetching events!'); 
    }, 
} 

bu özelliktir çalıştırdığınızda ben dev araçları bir hata söyleyerek başlangıç ​​olsun, ilk problem getirir tanımlı değil? Takvim başlangıç ​​ve bitiş zamanlarını otomatik olarak oluşturmuyor mu?

İkincisi, eğer parametreleri kendi PHP'm içine manuel olarak girersem, bir JSON dizisi oluşturur, sonra tekrar yankılanır ancak senaryo sürekli 'olayları getirirken bir hata oluştu' der!

<?php 
    require_once('../Connections/localhost.php'); 
    require_once("../Includes/functions.php"); 

    //if (!isset($_POST['start']) || !isset($_POST['end'])) { 
    // die("Please provide a date range."); 
    //} 

    //$range_start = parseDateTime($_POST['start']); 
    //$range_end = parseDateTime($_POST['end']); 
    //$branch = GetSQLValueString($_POST['id_office'], "int"); 
    //$inst = GetSQLValueString($_POST['instrument'], "int"); 

    $range_start = '1433462401'; 
    $range_end = '1433721599'; 
    $branch = 2; 
    $inst = 3; 

    // Parse the timezone parameter if it is present. 
    $timezone = null; 
    if (isset($_POST['timezone'])) { 
     $timezone = new DateTimeZone($_POST['timezone']); 
    } 

    // Query database to get events 
    mysql_select_db($database_localhost, $localhost); 
    $query_Events = sprintf("SELECT hm_classes.datetime, hm_classes.id_student, hm_classes.inst FROM hm_classes INNER join hm_rooms ON hm_classes.id_room = hm_rooms.id_room WHERE datetime BETWEEN %s AND %s AND id_office = %s AND inst = %s", $range_start, $range_end, $branch, $inst); 
    $Events = mysql_query($query_Events, $localhost) or die(mysql_error()); 
    while ($row = mysql_fetch_assoc($Events)){ 
    $id = $row['id_class']; 
    $title = 'Booking'; 
    $start = date('c', $row['datetime']); 
    $end = date('c', ($row['datetime'] + hoursToSecods($row['Session']))); 
    $input_arrays[]= array(id => $id, title => $title, start => $start, end => $end, allDay =>'false'); 
} 


    // Send JSON to the client. 
    echo json_encode($input_arrays); 
    ?> 

Bunun yankılandı sonucu ben fullcalendar sonra olduğunu düşünüyorum budur

[{"id":"1","title":"Booking","start":"2015-06-05T14:00:00+02:00","end":"2015-06-05T15:00:00+02:00","allDay":"false"}] 

nedir? Herhangi bir yardım büyük takdir edilecektir.

+0

TIMEFORMAT bir Unix için bunu değiştirmek php strtotime kullanıyorum. –

+0

aslında bir bitiş tarihi gerektiriyor mu? –

+0

sonu isteğe bağlıdır ancak allDay ve sonu isteğe bağlı iken (id, başlık, başlangıç) kimlik gereklidir. –

cevap

1

Tamam Ben kamlesh.bar'ın önerisini takip ederek bu sorunu çözdüğümü düşünüyorum http://www.jqueryajaxphp.com/fullcalendar-crud-with-jquery-and-php/'a bakmaya gittim.

Kodunu inceledikten sonra AJAX isteğimi ana fullcalendar komut dosyasından ayırdım ve kendi işlevini verdi.

function getEvents(){ 
     $.ajax({ 
      url: 'booking_events.php', 
      type: 'POST', // Send post data 
      data: {type: 'fetch', 
        branch: $('#branch').val(), 
        inst: $('#instrument').val()}, 
      async: false, 
      success: function(s){ 
       json_events = s; 
      } 
     }) 
    } 

Sonra fullcalendar I Bu şimdi php tarafından oluşturulan sonuçlar takvimine girmiş izin veriyor,

events: JSON.parse(json_events), 

gibi olayları ayarlayın.

o baştan gelince: stat.unix() sorunu, sadece sana bitiş tarihini dönmek için unuttum düşünüyorum

İlgili konular