2010-06-08 4 views
0

J'ai écrit un serveur php RESTful très simple (ma première expérience avec REST, alors n'hésitez pas à faire des suggestions) pour répondre au rappel des événements fullcalendar. Il produit exactement la même sortie de chaîne que le fichier json-events.php dans l'exemple fullcalendar json, mais pour une raison quelconque, fullcalendar n'acceptera pas la sortie de mon serveur.événements fullcalendar du serveur php REST-ful

J'ai essayé de jouer avec les en-têtes parce qu'ils sont différents de ceux produits par json-events.php, mais je ne suis pas vraiment sûr de ce qui ne va pas là-bas, si quelque chose.

Le code du serveur est ci-dessous:

<?php 

class Listener{ 
    function __construct() { 
     $this->getResource(); 
     $this->buildResponse(); 
    } 

    function getResource(){ 
     $parts = explode('/', $_SERVER["REQUEST_URI"]); 
     $script_name = end(explode('/', $_SERVER["SCRIPT_NAME"])); 

     $this->resource = $parts[array_search($script_name, $parts) + 1]; 
     $this->resource_id = $parts[array_search($script_name, $parts) + 2]; 
    } 

    function buildResponse(){ 
     $method = strtolower($_SERVER["REQUEST_METHOD"]); 
     $this->response_string = $method . ucwords($this->resource); 
    } 
    function getResponse(){ 
     return $this->response_string; 
    } 
} 

$listener = new Listener(); 
$thing = $listener->getResponse(); 

$thing(); 

function getEvents(){ 
    $year = date('Y'); 
    $month = date('m'); 

    echo json_encode(array(

     array(
      'id' => 111, 
      'title' => "Event1", 
      'start' => "$year-$month-10", 
      'url' => "http://yahoo.com/" 
     ), 

     array(
      'id' => 222, 
      'title' => "Event2", 
      'start' => "$year-$month-20", 
      'end' => "$year-$month-22", 
      'url' => "http://yahoo.com/" 
     ) 
    )); 
} 
?> 

Toute entrée, d'aide ou suggestions seraient grandement appréciés!

Merci, David

Répondre

0

Compris. Mon PHP ne gère pas les paramètres supplémentaires envoyés après le "?" dans l'url, donc il cherchait des actions qui n'existaient pas! Oops!

1

Comme vous l'aurez deviné, il est probablement vos têtes. Je ne suis pas sûr de ce qu'est "fullcalendar", mais si vous recherchez une réponse JSON, vous devez probablement définir votre type de contenu sur application/json.

+0

fullcalendar est un plugin de calendrier jquery. Je suis à peu près sûr que la méthode json_encode renvoie une représentation sous forme de chaîne d'un objet json, ce qui est attendu par fullcalendar. Comme il renvoie une chaîne, je pense que le type de contenu text/html est toujours approprié. De plus, c'est le type de contenu sur l'exemple de travail livré avec le plugin. – biagidp

+1

C'est une chaîne ... mais cette chaîne est JSON, donc application/json serait plus approprié. Je ne peux pas parler à leurs exemples si :) – jvenema

Questions connexes