2013-10-23 14 views
5

Çalıştığım bir projem var, bu da json feed'ini javascript kullanarak bir php komut dosyasını kullanarak veritabanından bilgi göndermeyi gerektirir. İşte komut şunlardır:Bir PHP json beslemesi oluşturmak ve javascript'e başarıyla bağlama

<link rel= 'stylesheet' type='text/css' href='fullcalendar/fullcalendar/fullcalendar.css' /> 
<link rel="stylesheet" media="print" href="fullcalendar/fullcalendar/fullcalendar.print.css" /> 
<script type="text/javascript" src="fullcalendar/lib/jquery.min.js"></script> 
<script type='text/javascript' src="fullcalendar/fullcalendar/fullcalendar.js"></script> 
<script type="text/javascript" src="fullcalendar/lib/jquery-ui.custom.min.js" ></script> 
<script> 
$(document).ready(function() { 
    $('#calendar').fullCalendar({ 
     header: { 

       left: 'prev,next today', 

       center: 'title', 

       right: 'month,basicWeek,basicDay' 

      }, 
      editable: true, 

      events: "public_calendar.php" 
    }) 
}); 
</script> 
</head> 

<body> 

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



?php require_once("includes/initialize.php"); ?> 
<?php require_once(LIB_PATH.DS.'database.php'); ?> 

<?php 
    //Find all the events 
    $events = Event::find_all(); 
     foreach($events as $event): 

      $id = (int) $event->id; 
      $title = "{$event->event_title}"; 
      $start = "{$event->start_date}" ." ". "{$event->start_time}"; 
      $end = "{$event->end_date}" ." ". "{$event->end_time}"; 
      $url = "event_detail.php"; 

      echo json_encode(array(
       'id' => $id, 
       'title' => "{$title}", 
       'start' => "{$start}", 
       'end' => "{$end}", 
       'url' => "{$url}" 
      ));   
     endforeach; 

?> 

Bu php script gibi görünmelidir nasıl:

{"id":12,"title":"Matriculation","start":"2013-11-5 08:00","end":"2013-11-5 17:00","url":"event_detail.php"} 
{"id":13,"title":"Exam","start":"2013-11-30 09:00","end":"2013-11-30 16:00","url":"event_detail.php"} 
{"id":2,"title":"Convocation","start":"2013-12-11 08:00","end":"2013-12-11 19:00","url":"event_detail.php"} 
:

[ {"id":111,"title":"Event1","start":"2013-10-10","url":"http:\/\/yahoo.com\/"}, 
    {"id":222,"title":"Event2","start":"2013-10-20","end":"2013-10-22","url":"http:\/\/yahoo.com\/"} 
] 

Bu şimdi benziyor nasıl

Bu javascript

Yardımlarınız için şimdiden teşekkür ederiz.

+1

Her diziyi json dizesi olarak vermeyin. Tüm Dizileri bir ** ana ** dizisine ve json_encode içine itin. –

cevap

3

İstediğiniz sonucu elde etmenin en iyi yolu, PHP'de bir dizi oluşturmaktır, daha sonra çıktıyı oluşturmak için json_encode()'u kullanın. Zaten bu bazılarını yapıyoruz - Eğer biraz daha gerekir:

<?php 
//Find all the events 
$events = Event::find_all(); 
$eventList = array();   // Assemble list of all events here 

    foreach($events as $event): 

     $eventList[] = array(    // Add our event as the next element in the event list 
      'id' => (int) $event->id, 
      'title' => $event->event_title, 
      'start' => $event->start_date." ".$event->start_time, 
      'end' => $event->end_date." ".$event->end_time, 
      'url' => "event_detail.php" 
     );   
    endforeach; 

    echo json_encode($eventList);  // encode and output the whole list. 
?> 

Ben de basitleştirilmiş ve gereksiz çift tırnak kaldırmak için kod bazı kısalttık.

İlgili konular