2009-11-04 6 views
0

mysql 데이터베이스에서 json의 이벤트를 표시하고 싶습니다. 하지만 캘린더에는 표시 할 수 없습니다. 나는 사건에 몇 가지 실수가 있다고 생각한다. 그러나 나는 그것을 지적 할 수 없다. 여기 풀 캘린더에 표시되는 이벤트

내 코드입니다 :

calendar.php :

$(document).ready(function() { 

    var date = new Date(); 
    var d = date.getDate(); 
    var m = date.getMonth(); 
    var y = date.getFullYear(); 

    $('#calendar').fullCalendar({ 
    theme: true, 
    draggable: true, 
    header: { 
    left: 'prev,next today', 
    center: 'title', 
    right: 'month,agendaWeek,agendaDay' 
    }, 
    editable: true, 
    /*events: "json_events.php",*/ 
    events: function(start, end, callback){ 
    $.getJSON("json_events.php", 
    { 
     start: start.getTime(), 
     end: end.getTime() 
    }, 
    function(result){ 
     for(var i=0; i<result.length; i++){ 
     var row = result[i]; 
     } 
     //format the result into an array of calevents 
     $('#calendar').fullCalendar('addEvent', {id:row[0], title:row[1], start:row[2], end:row[3]}); 
     //then pass the calevent array to the callback 
     callback(calevents); 
    } 
    ); 
    }, 
    eventClick: function(event){ 
    editEventShow(event); 

    }, 
    eventDrop: function(event, daydelta, minutedelta) { 
    alert(event.title + ' was moved ' + daydelta + ' days\n' + minutedelta + ' minutes\n'+ 
    '(should probably update your database)'); 

    }, 
    dayClick: function(dayDate){ 
    /*$('#dialog').dialog('open'); 
    var date, month, year; 
    date = dayDate.getDate(); 
    month = dayDate.getMonth()+1; 
    year = dayDate.getFullYear(); 
    dayDate = year + "-" + month + "-" + date;*/ 
    addEventShow(dayDate, this); 

    }, 
    loading: function(bool) { 
    if (bool) $('#loading').show(); 
    else $('#loading').hide(); 
    }, 

}); 
    }); 
    </script> 
    <style type='text/css'> 

body { 
    margin-top: 40px; 
    text-align: center; 
    font-size: 13px; 
    font-family: "Lucida Grande",Helvetica,Arial,Verdana,sans-serif; 
    } 

#calendar { 
    width: 900px; 
    margin: 0 auto; 
    } 

</style> 
</head> 
<body> 
<div id='calendar'></div> 
</body> 
</html> 

json_events.php :

<?php 
    require("../../../connect/config.php"); 

    $link = mysql_connect("$server","$user","$password") or die(mysql_error()); 
    mysql_select_db($db); 
    $query = "SELECT id,title,start, end FROM events"; 
    $result = mysql_query($query) or die(mysql_error()); 
    $arr = array(); 
    while($row = mysql_fetch_assoc($result)){ 
    $arr[] = $row; 
    } 
    echo json_encode($arr); 
?> 

당신이 날이 문제에 대해 도와 드릴까요?

감사합니다.

+0

당신은 SQL 쿼리에 WHERE 절을 넣을 수 있도록 getJSON 함수에 시작과 끝을 전달하고 있습니까? 나는 그것이 사용 된 것을 보지 못한다 ... 이것은 단지 목적을위한 것인가? –

답변

0

EDIT (새로운 않음)

for(var i=0; i<result.length; i++){ 
    var row = result[i]; 
    } 

상기 루프 식 루프의 각 반복에 row를 덮어 쓰기 할 것이다. 나중에 행 [0], 행 [1] 등을 호출 할 때 최종 결과 [i]가 실제로 배열이 아닌 한 실제로 배열을 가져 오지는 않을 것입니다. 루프는 필요하지 않음)

나는 100 % 대답을 줄 수는 없지만 올바른 방향으로 가야합니다.

업데이트 : 내가 좀 더 열심히보고하고 라인 이동해야 할 것 같습니다 : 루프의 내부

$('#calendar').fullCalendar('addEvent', {id:row[0], title:row[1], start:row[2], end:row[3]}); 

합니다.

+0

예, 아니오, json_events.php를 표시하는 중 오류가 없습니다. 하지만 이벤트에서 $ .getJSON()의 결과를 형식화하는 올바른 방법을 모르겠습니다. 저를 도와 줄 수 있습니까? –

0

CalEvent 양식에 이미있는 JSON을 제공하는 경우 필요한 정보로 포맷 된 JSON 문자열을 반환하는 URL 만 제공 할 수 있습니다. 표시된대로 cal 이벤트로 변환하는 기능은 필요하지 않습니다 귀하의 코멘트 라인에.

JSONLint 올바른 JSON이 있는지 파악하는 데 도움이됩니다.

[ 
    { 
     id: row[0], 
     title: row[1], 
     start: row[2], 
     end: row[3] 
    }, 
    { 
     ... // next event 
    }, 
] 

json_event.php에서 반환 된 문자열로 : 당신이 찾고있는의 라인을 따라 무언가이다.

관련 문제