2016-05-19 45 views
0

私はfullcalendarとajaxの初心者です。私はデータベースからデータを取得するのが難しく、それらのデータはフルカレンダーに表示する必要があります。 私は同じことをするコードを試しました。私はjsonフィードとしてajaxを介してデータを取得することができません。 これまでのところ、私はcodeigniter MVCを通してデータベースからデータを取得しています。しかし、私は coulntフルデータをfullcalendarイベントに渡します。FullCalendar:データベースからデータを取得し、イベントで表示する方法(jsonフィードとして)

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> 

答えて

2

まずあなたが行うことができ、JSONSQL結果セットを解析する必要があり、その次のPHPの機能を持つ:

接続DB機能に:

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

機能DBから切断する:

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

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

JSONを取得する関数RSE 1つの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; 
} 

このステップの後、あなたはJSONを含めることができますeventsカレンダースクリプトに返さ:

$(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); 
     }); 
    } 
    }); 

}); 

これはあなたを助けることができると思います。

+0

ok yaaar、addEventSource ..を使用するとできますか? – Keynes

関連する問題